我有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
非常小
答案 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}
您遇到了什么问题?