0
我有两个std::vector
和几个std::unordered_set
里面。然而,载体之一将是整个执行置换其他,像这样:指定载体而不复制它们
vector1 = ...
vector2 = ...
// some operations
vector1 = vector2
vector2 = std::vector<...>
是否有实现这一目标,而不必复制向量的内容的一种方式?
我有两个std::vector
和几个std::unordered_set
里面。然而,载体之一将是整个执行置换其他,像这样:指定载体而不复制它们
vector1 = ...
vector2 = ...
// some operations
vector1 = vector2
vector2 = std::vector<...>
是否有实现这一目标,而不必复制向量的内容的一种方式?
由于C++ 11可以move assign他们:
vector1 = std::move(vector2); // move vector2 to vector1
vector2 = std::vector<...>; // move the temporary vector to vector2
您可以使用std::swap交换内容
但是,复制载体。我一直在寻找一种解决方案,不会浪费时间去处理我不需要的东西。 – Hel
交换移动,而不是副本 – Caleth