c++ - 使用 C++ vector 作为缓冲区

标签 c++ vector append

我正在使用 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/

相关文章:

c++ - SAPI5 语音/使用 32 位语音

c++ - 使用结构 C++ 进行转换

c++ - 在 C++ 中从 T 转换为 const T 的函数

c++ - 为什么此代码无法将 char 推回到 vector <char> 中?

c++ - 不可内联的函数

c++ - 如何初始化这个填充有&functionA, &functionB 的数组?

c++ - 如何解释 sizeof(std::vector<int>) 的值?

javascript - 在每个新的 "append"函数上更改字体颜色

jQuery .each 与 jQuery select追加冲突

javascript - jquery追加嵌套元素