【发布时间】:2020-09-18 17:15:33
【问题描述】:
有没有办法在保留内存分配的同时清除std::vector的内容?
原因是我有一段循环的代码,我希望对其进行优化。我目前有数据存储在std::vectors。每次循环开始时,都应该清除向量的内容。然后我使用push_back 将数据输入到向量中,但是由于向量的长度在循环的迭代之间通常不会改变,因此我希望向量在内存中保留其分配的存储空间。
如果 vector 无法做到这一点,是否可以使用另一种快速访问 STD 类型?
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/18467624/…
-
我只是通过点击下面对 cppreference 的答案中的链接以及该页面链接到答案的链接找到了它。事实证明它可以很好地复制
-
如果向量大小没有改变,你是否考虑过完全不清晰?只保留旧元素并覆盖它们
-
.clear()清除容器并将.size()设置为零,但不会减少.capacity()。