如何在STL向量中的某个位置插入?
到目前为止,我已尝试插入STL矢量,如下所示:
someVector.insert(someVector.begin() + location, info);
当我按顺序插入项目时,这是有效的,但是当我从向量中删除项目时,我希望能够在该位置插入。但是,迭代器需要重新分配,因为它会抛出“向量迭代器+偏移超出范围”错误。 (我对C ++迭代器很新,所以我不完全确定“迭代器重新分配”是什么,似乎找不到好的解释,所以如果你能解释一下,请随意!)我能找到很多问题何时需要重新分配迭代器,而不是最好的方法。或者,是否会有不同/更好的方式插入某个位置?
答案 0 :(得分:2)
向量上的擦除操作使迭代器返回刚刚擦除的元素。您可以使用该迭代器作为后续插入位置来插入"在该位置"在哪里擦除:
rank = {1: 'Freshman', 2: 'Sophmore', 3: 'Junior'}
rank.get(years, 'Senior')