假设以下基本向量:
std::vector<int> numbers;
numbers.push_back(0);
numbers.push_back(1);
numbers.push_back(2);
numbers.push_back(3);
在 0 和 1 之间插入 6 个新数字的有效方法是什么?
这是我现在的方法,但我觉得它不是很有效:
for (int new_number=0;new_number<6;new_number++) {
numbers.emplace(numbers.begin()+1+new_number,new_number);
}
我不喜欢这种方法的原因是数字 1-3 必须移动 6 次。有没有办法只移动这些数字一次而不是移动 6 次?然后我可以使用这个循环:
for (int new_number=0;new_number<6;new_number++) {
numbers[new_number+1]=new_number;
}
这是我想要完成的事情:
移位前的向量:
0 1 2 3
移位后的向量:
0 X X X X X X 1 2 3