2017-04-06 61 views
0

我有两个std::vector和几个std::unordered_set里面。然而,载体之一将是整个执行置换其他,像这样:指定载体而不复制它们

vector1 = ... 
vector2 = ... 
// some operations 
vector1 = vector2 
vector2 = std::vector<...> 

是否有实现这一目标,而不必复制向量的内容的一种方式?

回答

5

由于C++ 11可以move assign他们:

vector1 = std::move(vector2); // move vector2 to vector1 
vector2 = std::vector<...>; // move the temporary vector to vector2 
2

您可以使用std::swap交换内容

+0

但是,复制载体。我一直在寻找一种解决方案,不会浪费时间去处理我不需要的东西。 – Hel

+4

交换移动,而不是副本 – Caleth

相关问题