分配矢量而不复制它们

时间:2017-04-06 01:01:06

标签: c++ c++11 vector

我有两个std::vector,里面有几个std::unordered_set。但是,其中一个向量将在整个执行过程中替换另一个向量,如下所示:

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

有没有办法实现这一点而无需复制载体的内容?

2 个答案:

答案 0 :(得分:5)

从C ++ 11开始,你可以move assign

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

答案 1 :(得分:2)

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