我正在使用 vector 作为缓冲区来存储一些对象,以便稍后 append 到另一个 vector 。
std::vector<Link*> buffer_vector;
std::vector<Link*> main_vector;
main_vector.insert(main_vector.end(),buffer_vector.begin(),buffer_vector.end());
填充缓冲区和 append 的过程重复发生。因此我需要在每次迭代时清除缓冲区。我担心的是,如果我使用 .erase 或 .clear 方法清除缓冲区,主 vector 中的对象将被删除。这个假设是否正确? 如果是,是否有解决方法?
谢谢
好吧
最佳答案
您的担心是不正确的。
main_vector.insert(main_vector.end(),buffer_vector.begin(),buffer_vector.end());
复制 buffer_vector
中的元素进入main_vector
.
这些复制的元素与原始元素完全分开,因此它们不受对其复制的元素的修改影响。
关于c++ - 使用 C++ vector 作为缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781191/