gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:33:58 31 4
gpt4 key购买 nike

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

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

最佳答案

复活一个旧线程,但我很惊讶没有人提到std::make_move_iteratorinsert 结合使用。它具有在目标 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/15004517/

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