C++ vector 避免迭代器失效

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int>m;
    m.push_back(1);
    m.push_back(2);
    m.push_back(3);
    for(std::vector<int>::iterator it = m.begin();it != m.end())
    {   
        if(*it == 2)
        {   
            it = m.erase(it);
        }   
        else
            it++;
    }   
    for(unsigned int i=0;i<m.size();i++)
        cout<<m[i]<<endl;
    return 0;
}
posted @ 2020-09-17 19:27  h云淡风轻  阅读(4)  评论(0编辑  收藏  举报  来源