У меня есть два std::vector с несколькими std::unordered_set внутри. Тем не менее, один вектор будет заменять другой во время выполнения, например так:

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

Есть ли способ достичь этого без необходимости копировать содержимое векторов?

2
Hel 6 Апр 2017 в 04:01

2 ответа

Лучший ответ

Начиная с C ++ 11 вы можете переместить назначить их:

vector1 = std::move(vector2); // move vector2 to vector1
vector2 = std::vector<...>;   // move the temporary vector to vector2
6
songyuanyao 6 Апр 2017 в 03:51

Вы можете использовать std :: swap для обмена контентом

3
Caleth 6 Апр 2017 в 01:07