c – 如何从std :: deque释放内存?

前端之家收集整理的这篇文章主要介绍了c – 如何从std :: deque释放内存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用std :: deque来存储相当多的对象.如果我删除一堆这些对象,在我看来,它的内存使用率并没有减少,与std :: vector类似.

有办法减少吗?我知道在一个向量中,你必须使用“互换技巧”,我认为这也是在这里工作,但我宁愿避免,因为它需要复制容器中剩下的所有元素(因此要求你有足够的内存来存储每个对象两次).我不太熟悉deque的实现,但是我对此的理解是,可以实现这样一个没有大量副本的东西(而使用矢量显然不是这样).

我正在使用VC(Dinkumware)STL,如果这有任何区别.

解决方法

没有办法直接在std :: deque这样做.然而,通过使用临时(这基本上是在缩小它的容量时std :: vector中会发生什么)容易做到这一点.

这是一个good article on std::deque,与std :: vector进行比较.底部显示了一个干净的方式来交换和缩小向量,与deque相同.

猜你在找的C&C++相关文章