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

时间:2019-06-26 12:18:14

标签: c++11 stdvector

我有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的建议,但是问题是v2std::vector的一部分,它来自遗留代码中的函数,我无法更改。而且它包含大量数据,我不想通过追加将其复制到v2上。因此,我只想在v1之前加上v2,因为与v1相比,v2非常小

1 个答案:

答案 0 :(得分:4)

这确实很好:

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}

您遇到了什么问题?