【发布时间】:2013-04-23 15:52:59
【问题描述】:
我正在编写一个基于输入大小限制内存的程序。假设输入大小为 1000,然后我将它们存储在大小为 1000 的向量中。稍后当我处理此向量中的数据时,每当处理完一个元素时,我将其推入我的第二个向量并使用 vector.erase从原始向量中删除它。所以我认为我总是使用 1000 大小的内存,因为这两个向量中总共存储了 1000 个元素。
但我错了,原来我使用了 2000 个内存,因为 erase 在删除元素时不会减小向量的大小...我猜 splice 也是一样的,是吗?
那么有没有办法让我的程序只使用 1000 个内存?我可以通过添加属性并标记元素是否已处理来解决它,但我觉得这不是最好的方法。谢谢!
【问题讨论】:
标签: c++ vector c++11 resize splice