如何有效地将向量添加到向量

Ade*_*erg 2 stdvector c++11

我有 2 个像这样的向量:

std::vector<unsigned char> v1;
std::vector<unsigned char> v2;
Run Code Online (Sandbox Code Playgroud)

当然,他们每个人都有一些数据。

我知道如果我想将 v2 附加到 v1,下面是方法。v1.insert(v1.end(), v2.begin(), v2.end());

问题:
如何将 v1 加到 v2 之前?
v2.insert(v2.begin(), v1.begin(), v1.end())似乎在这里不起作用?

我知道我可能会得到使用的建议,std::deque但问题是这v2std::vector我无法更改的遗留代码中的一个函数。它包含大量数据,我不想v2通过追加复制到这些数据。所以,我只是想加上v1v2因为v1v2

Aja*_*jay 5

这确实很好用:

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}
Run Code Online (Sandbox Code Playgroud)

你遇到了什么问题?