分配矢量而不复制它们

Hel*_*Hel 1 c++ vector c++11

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

vector1 = ...
vector2 = ...
// some operations
vector1 = vector2
vector2 = std::vector<...>
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一点,而无需复制向量的内容?

son*_*yao 5

从C++ 11开始,您可以移动分配它们:

vector1 = std::move(vector2); // move vector2 to vector1
vector2 = std::vector<...>;   // move the temporary vector to vector2
Run Code Online (Sandbox Code Playgroud)