假设我有一个由元素组成的向量:
1 2 3 4 5 6 7
我有另一个矢量,它包括:
9 8
将两者相加后,结果应该是:
9 8 1 2 3 4 5 6 7
这就是我试图做的:
v1.insert(v1.begin() + 0, 9); //at the beginning of v1 insert 9
v1.insert(v1.begin() + 0, 8); //at position 1 of v1 insert 8
for (int i = 7;i > 0;i--)
{
v1.insert(v1.end(), v2[i]);
}
结果是987654321
您正在从右向左遍历向量(i 7向下到0(。一种方法是从0到7。另一种方式:
for (int val : v2) {
v1.push_back(v2);
}
或
v1.insert(v1.end(), v2.begin(), v2.end());
使用STL的替代方法:
std::copy(v1.begin(), v1.end(), std::back_inserter(v2));