最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vector與map的erase()函數(shù)詳細解析

 更新時間:2013年09月24日 08:47:03   作者:  
vector和map都不能將it++寫在for循環(huán)中,而在循環(huán)體內erase(it)

vector循環(huán)刪除的時候,erase(it)會返回下一個迭代器的地址,保險的做法是賦值給it 即 it= erase(it)

這是vector的內部機制所造成的,所以對vector進行erase的時候特別注意迭代器是否會失效!

map則可以直接erase(it++);

vector和map都不能將it++寫在for循環(huán)中,而在循環(huán)體內erase(it)!

復制代碼 代碼如下:

void main()
{
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(4);
    v.push_back(3);
    v.push_back(6);
    v.push_back(5);
    cout << v.size() <<endl;
    vector<int>::iterator it;
    for(it = v.begin();it != v.end();)
    {  
        if(*it % 2 == 0)
            //v.erase(it++);
            //it = v.erase(it);
             v.erase(it);
        else
            it++;
    }  
    cout << v.size() <<endl;
    for(it = v.begin();it != v.end();it++)
    {  
        cout << *it << " ";
    }  

    // map的完美刪除
    map<int, int> m;
    m[1] = 1;
    m[2] = 2;
    m[3] = 4;
    m[4] = 3;
    m[5] = 5;
    m[6] = 6;
    cout <<"m size = "<<m.size() <<endl;
    map<int, int>::iterator it1;
    for(it1 = m.begin(); it1!=m.end();)
    {  
        if(it1->second % 2 == 0)
            m.erase(it1++);
        else
            it1++;
    }  
    cout <<"2的整數(shù)倍刪除后應該剩下i3";
    cout <<"m size = "<<m.size() <<endl;

}

相關文章

  • QSS樣式表實現(xiàn)界面換膚功能

    QSS樣式表實現(xiàn)界面換膚功能

    這篇文章主要介紹了QSS樣式表實現(xiàn)界面換膚功能,對QSS樣式表進行簡單介紹,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • C語言超詳細講解數(shù)據(jù)結構中的線性表

    C語言超詳細講解數(shù)據(jù)結構中的線性表

    線性表,數(shù)據(jù)結構中最簡單的一種存儲結構,專門用于存儲邏輯關系為"一對一"的數(shù)據(jù)。線性表是基于數(shù)據(jù)在實際物理空間中的存儲狀態(tài),又可細分為順序表(順序存儲結構)和鏈表
    2022-05-05
  • C語言學生信息管理系統(tǒng)設計與實現(xiàn)

    C語言學生信息管理系統(tǒng)設計與實現(xiàn)

    這篇文章主要為大家詳細介紹了C語言學生信息管理系統(tǒng)設計與實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • win10中的dlib庫安裝過程

    win10中的dlib庫安裝過程

    這篇文章主要介紹了win10中dlib庫的安裝過程,本文通過實例圖文介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • gdb調試命令的使用及總結

    gdb調試命令的使用及總結

    gdb是一個在UNIX環(huán)境下的命令行調試工具。如果需要使用gdb調試程序,請在gcc時加上-g選項。下面的命令部分是簡化版,比如使用l代替list等等
    2013-05-05
  • Qt學習之容器的使用詳解

    Qt學習之容器的使用詳解

    Qt容器主要優(yōu)點就是在所有的平臺上的運行都表現(xiàn)的一致,并且它們都是隱含共享的,這篇文章就來和大家講講Qt中容器的具體用法吧,希望對大家有所幫助
    2023-03-03
  • C++異常捕捉與處理的深入講解

    C++異常捕捉與處理的深入講解

    這篇文章主要給你大家介紹了關于C++異常捕捉與處理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • C++ 反射機制詳解及實例代碼

    C++ 反射機制詳解及實例代碼

    這篇文章主要介紹了C++ 反射機制詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-01-01
  • C?語言實現(xiàn)猜數(shù)字小游戲完整示例代碼

    C?語言實現(xiàn)猜數(shù)字小游戲完整示例代碼

    這篇文章主要介紹了如何使用C語言生成1到100之間的隨機數(shù),并提供了一個簡單的猜數(shù)字游戲的實現(xiàn)代碼,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • c++ std::invalid_argument應用

    c++ std::invalid_argument應用

    想研究std::invalid_argument的朋友可以參考下
    2013-01-01

最新評論

安义县| 岳普湖县| 清流县| 吐鲁番市| 通州区| 通道| 尼勒克县| 阿瓦提县| 深州市| 林西县| 宁武县| 长治市| 晋中市| 达尔| 思南县| 万年县| 望奎县| 广宗县| 基隆市| 汉川市| 柳林县| 陇西县| 曲阜市| 济阳县| 威信县| 乌拉特后旗| 正定县| 红原县| 东光县| 蓬莱市| 贞丰县| 玉田县| 七台河市| 洪湖市| 庄浪县| 吉木萨尔县| 涪陵区| 行唐县| 南和县| 巴彦淖尔市| 湖州市|