«переместить» два вектора вместе ⇐ C++
-
Гость
«переместить» два вектора вместе
Если у меня есть два вектора и я хочу объединить их в один, я могу сделать это следующим образом:
std::vector a(100); // здесь просто какой-то случайный размер std::vector b(100); a.insert(std::end(a), std::begin(b), std::end(b)); Однако это предполагает копирование, которого я хочу избежать. Есть ли способ использовать семантику перемещения, чтобы объединить их?
Я в этом очень сомневаюсь, поскольку вектор должен быть непрерывным. Однако есть ли способ сделать это с помощью deque?
Если у меня есть два вектора и я хочу объединить их в один, я могу сделать это следующим образом:
std::vector a(100); // здесь просто какой-то случайный размер std::vector b(100); a.insert(std::end(a), std::begin(b), std::end(b)); Однако это предполагает копирование, которого я хочу избежать. Есть ли способ использовать семантику перемещения, чтобы объединить их?
Я в этом очень сомневаюсь, поскольку вектор должен быть непрерывным. Однако есть ли способ сделать это с помощью deque?
Мобильная версия