在使用vector时,迭代器经常被用到。 有一些操作会造成迭代器失效,在此特别记录,避免入坑。
首先,先来看一个题目: 在vector中插入0~20,然后从当中删除偶数。
#include <vector>
#include <iostream>
int main(int argc, char * argv[])
{
std::vector<int> vec;
for (int i = 0; i < 20; i++)
{
vec.emplace_back(i);
}
for (auto it = vec.begin(); it != vec.end(); it++)
{
//预期每个值在判断之前ÿ