我必须使用迭代器在向量中的特定位置插入元素。我不能使用 insert() 函数(我已经得到明确的指导方针,我应该在没有 insert() 的情况下这样做)。
这是我的代码(或者至少是搞砸的部分):
cerr << "distance before resize: " << distance(wl.begin(), pos) << endl;
wl.resize(wl.size()+1);
cerr << "distance after resize: " << distance(wl.begin(), pos) << endl;
move_backward(pos, wl.end()-1, wl.end());
(*pos) = temp;
我的输出:
distance before resize: 0
distance after resize: -322
所以很明显,我的调整大小弄乱了迭代器位置。有想法该怎么解决这个吗?
编辑:您可能想知道我如何声明我的迭代器:
auto pos = wl.begin();