У меня есть 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





Это работает очень хорошо:
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}
С какой проблемой вы столкнулись?
Это хорошо работает на clang, но вызывает проблемы на руке, построенной с помощью gnu. вектор a У меня довольно большой. Должен ли быть какой-то размер a, который я должен/мог бы сделать?
Это работает хорошо. Я тупо делал несвязанную ошибку и запутался.