我有两个std::vector
,里面有几个std::unordered_set
。但是,其中一个向量将在整个执行过程中替换另一个向量,如下所示:
vector1 = ...
vector2 = ...
// some operations
vector1 = vector2
vector2 = std::vector<...>
有没有办法实现这一点而无需复制载体的内容?
答案 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来交换内容