美文网首页C/C++编程技巧
C++:vector erase删除符合条件的元素

C++:vector erase删除符合条件的元素

作者: AI秘籍 | 来源:发表于2020-04-19 10:31 被阅读0次

    C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法。
    C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。

    1. std::vector::erase()

    iterator erase (iterator position);  //删除指定元素
    iterator erase (iterator first, iterator last); //删除指定范围内的元素
    返回值:指向删除元素(或范围)的下一个元素。

    2.实例

    #include<iostream>
    #include<string>
    #include<vector>
     
    using namespace std;
     
    int out(vector<int> &iVec)
    {
        for (int i = 0; i < iVec.size(); i++)
            cout << iVec[i] << ends;
        cout << endl;
        return 0;
    }
     
    int main()
    {
        vector<int> iVec;
        int i;
        for (i = 0; i < 10; i++)
            iVec.push_back(i);
     
        cout << "The Num(old):"; out(iVec);
     
        vector<int>::iterator it;//定义迭代器
        for (it = iVec.begin(); it != iVec.end();)
        {
            if (*it % 3 == 0)
                it = iVec.erase(it);    //删除元素,返回值指向已删除元素的下一个位置    
            else
                ++it;    //指向下一个位置
        }
        cout << "The Num(new):"; out(iVec);
        return 0;
    }
    
    image.png

    参考:

    1. https://blog.csdn.net/sss_369/article/details/87927049

    相关文章

      网友评论

        本文标题:C++:vector erase删除符合条件的元素

        本文链接:https://www.haomeiwen.com/subject/mexvvhtx.html