gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 16:27:01 31 4
gpt4 key购买 nike

我正在使用 std::deque 来存储相当多的对象。如果我删除了一堆这样的对象,在我看来它的内存使用量并没有减少,这与 std::vector 类似。

有什么办法可以减少吗?我知道在 vector 中你必须使用“交换技巧”,我认为它也可以在这里工作,但我宁愿避免这样做,因为它需要复制容器中剩余的所有元素(因此需要你有足够的内存来存储每个对象两次)。我对 deque 的实现不是很熟悉,但我的理解是,无需大量拷贝就可以实现这样的事情(而使用 vector 显然不行)。

我正在使用 VC++ (Dinkumware) STL,如果这有什么不同的话。

最佳答案

无法在 std::deque 中直接执行此操作。但是,使用临时变量很容易做到(这基本上是 std::vector 缩小容量时发生的情况)。

这是一个good article on std::deque ,将其与 std::vector 进行比较。最底部显示了一种换出和缩小 vector 的简洁方法,它与双端队列的工作方式相同。

关于c++ - 如何从 std::deque 释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1242357/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com