分配向量而不复制它们

Assigning vectors without copying them

本文关键字:复制 向量 分配      更新时间:2023-10-16

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

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

有没有办法在不必复制向量内容的情况下实现这一点?

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

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

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