gpt4 book ai didi

c++ - 将元素从 std::vector 移动到另一个

转载 作者:行者123 更新时间:2023-12-02 10:31:10 26 4
gpt4 key购买 nike

如何将一些元素从第一个 vector 移动到第二个,并且这些元素将从第一个 vector 中删除?
如果我使用 std::move ,未从第一个 vector 中删除的元素。
这是我写的代码:

   move(xSpaces1.begin() + 7, xSpaces1.end(), back_inserter(xSpaces2));

最佳答案

复活一个旧线程,但我很惊讶没有人提到 std::make_move_iterator 结合 insert .它具有在目标 vector 中预分配空间的重要性能优势:

v2.insert(v2.end(), std::make_move_iterator(v1.begin() + 7), 
std::make_move_iterator(v1.end()));
正如其他人所指出的,第一个 vector v1现在处于不确定状态,所以使用 erase清除困惑:
v1.erase(v1.begin() + 7, v1.end());

关于c++ - 将元素从 std::vector 移动到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62200178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com