如何将某些元素从第一个向量移动到第二个向量,而这些元素将从第一个向量中删除?
如果我使用 std::move,则不会从第一个向量中删除元素.
这是我写的代码:
move(xSpaces1.begin() + 7,xSpaces1.end(),back_inserter(xSpaces2));
如何将某些元素从第一个向量移动到第二个向量,而这些元素将从第一个向量中删除?
如果我使用 std::move,则不会从第一个向量中删除元素.
这是我写的代码:
move(xSpaces1.begin() + 7,xSpaces1.end(),back_inserter(xSpaces2));
std::move 可让您移动对象,而不是复制它们,从而实现潜在更快的执行速度.当您移动一系列值时,节省可能更大.但是,当您从容器中移动范围时,该容器仍然保留曾经被这些值占据的地方.
如果您想删除这些占位符,您需要手动调整容器大小以删除它们(您不必这样做,以防您更愿意将这些容器点重用于其他元素).一种方法是调用 vector::erase 在您移出容器的同一范围内.
这篇关于将元素从 std::vector 移动到另一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持前端之家!