我正在编写一个基于输入大小限制内存的程序。假设输入大小为 1000,然后我将它们存储在大小为 1000 的向量中。稍后当我处理此向量中的数据时,每当处理完一个元素时,我将其推入我的第二个向量并使用 vector.erase从原始向量中删除它。所以我认为我总是使用 1000 大小的内存,因为这两个向量中总共存储了 1000 个元素。
但我错了,事实证明我使用了 2000 内存,因为erase
在删除元素时不会减少向量的大小......我想它是一样的splice
吗?
那么有没有办法让我的程序只使用 1000 个内存?我可以通过添加属性并标记元素是否已处理来解决它,但我觉得这不是最好的方法。谢谢!