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

如何将某些元素从第一个向量移动到第二个向量,而这些元素将从第一个向量中删除?
如果我使用 std::move,则不会从第一个向量中删除元素.
这是我写的代码:

   move(xSpaces1.begin() + 7,xSpaces1.end(),back_inserter(xSpaces2));
davidscofield 回答:将元素从 std::vector 移动到另一个

std::move 可让您移动对象,而不是复制它们,从而实现潜在更快的执行速度.当您移动一系列值时,节省可能更大.但是,当您从容器中移动范围时,该容器仍然保留曾经被这些值占据的地方.

如果您想删除这些占位符,您需要手动调整容器大小以删除它们(您不必这样做,以防您更愿意将这些容器点重用于其他元素).一种方法是调用 vector::erase 在您移出容器的同一范围内.

这篇关于将元素从 std::vector 移动到另一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持前端之家!

本文链接:https://www.f2er.com/3186431.html

大家都在问