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

How to efficiently prepend a vector to a vector

我有 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 之前,因为 v1v2

相比非常小

这确实很管用:

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}

您遇到了什么问题?