加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 07:53:10 所属栏目:百科 来源:网络整理
导读:我使用std :: deque来存储相当多的对象.如果我删除一堆这些对象,在我看来,它的内存使用率并没有减少,与std :: vector类似. 有办法减少吗?我知道在一个向量中,你必须使用“互换技巧”,我认为这也是在这里工作,但我宁愿避免,因为它需要复制容器中剩下的所有元
我使用std :: deque来存储相当多的对象.如果我删除一堆这些对象,在我看来,它的内存使用率并没有减少,与std :: vector类似.

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

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

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读