«переместить» два вектора вместе

Если у меня есть два вектора и я хочу объединить их в один, я могу сделать это следующим образом:

std::vector<T> a(100); // just some random size here
std::vector<T> b(100);

a.insert(std::end(a), std::begin(b), std::end(b));

Это включает в себя копирование, которое я хочу чтобы избежать. Есть ли способ использовать семантику движений, чтобы собрать их вместе?
Я очень сомневаюсь в этом, так как вектордолжен быть непрерывным. Однако есть ли способ сделать это с помощью deque?

25
задан inf 19 March 2012 в 22:02
поделиться