Как эффективно добавить вектор к вектору - PullRequest
2 голосов
/ 26 июня 2019

У меня есть 2 вектора, вот так:

std::vector<unsigned char> v1;
std::vector<unsigned char> v2;

Каждый из них, конечно, имеет некоторые данные.

Я знаю, что если я хочу добавить v2 к v1, нужно придерживаться следующего. v1.insert (v1.end (), v2.begin (), v2.end ());

Вопрос:
Как я могу вместо этого добавить v1 к v2?
v2.insert(v2.begin(), v1.begin(), v1.end()) здесь не работает?

Я знаю, что я мог бы получить предложения об использовании std::deque, но проблема в том, что v2 выходит как std::vector из функции в устаревшем фрагменте кода, который я не могу изменить. И он содержит огромное количество данных, которые я не хочу копировать в v2 путем добавления. Итак, я просто хочу добавить v1 к v2, потому что v1 очень мало по сравнению с v2

1 Ответ

4 голосов
/ 26 июня 2019

Это работает очень хорошо:

std::vector<int> a{ 1,2,3,4 };
std::vector<int> b{ 5, 6, 7 };
a.insert(a.begin(), b.begin(), b.end());
// a is  {5, 6, 7, 1, 2, 3, 4}

С какой проблемой вы столкнулись?

...