欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

這是vector的內(nèi)部機(jī)制所造成的,所以對vector進(jìn)行erase的時候特別注意迭代器是否會失效!

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

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

復(fù)制代碼 代碼如下:

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ù)倍刪除后應(yīng)該剩下i3";
    cout <<"m size = "<<m.size() <<endl;

}

相關(guān)文章

  • C語言計(jì)算余數(shù)的圖文步驟

    C語言計(jì)算余數(shù)的圖文步驟

    在本篇文章里小編給大家整理了一篇關(guān)于C語言計(jì)算余數(shù)的圖文步驟內(nèi)容,有需要的朋友們可以參考下。
    2020-02-02
  • C語言數(shù)據(jù)結(jié)構(gòu)之迷宮問題

    C語言數(shù)據(jù)結(jié)構(gòu)之迷宮問題

    這篇文章主要為大家詳細(xì)介紹了C語言數(shù)據(jù)結(jié)構(gòu)之迷宮問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • OpenCV實(shí)現(xiàn)幀間差分法詳解

    OpenCV實(shí)現(xiàn)幀間差分法詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)幀間差分法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言規(guī)律循環(huán)累加求和案例

    C語言規(guī)律循環(huán)累加求和案例

    這篇文章主要介紹了C語言規(guī)律循環(huán)累加求和案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C語言Tinyhttpd服務(wù)器源碼剖析

    C語言Tinyhttpd服務(wù)器源碼剖析

    這篇文章主要為大家介紹了C語言Tinyhttpd服務(wù)器源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)

    C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語言中可變參數(shù)的使用方法示例

    C語言中可變參數(shù)的使用方法示例

    這篇文章主要給大家介紹了關(guān)于C語言中可變參數(shù)的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C語言二叉排序樹的創(chuàng)建,插入和刪除

    C語言二叉排序樹的創(chuàng)建,插入和刪除

    本文主要介紹了Java實(shí)現(xiàn)二叉排序樹的查找、插入、刪除、遍歷等內(nèi)容。具有很好的參考價值,下面跟著小編一起來看下吧
    2021-10-10
  • 淺析C++中的動態(tài)內(nèi)存分配

    淺析C++中的動態(tài)內(nèi)存分配

    這篇文章主要為大家詳細(xì)介紹了C++中動態(tài)內(nèi)存分配的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C語言繪制三角函數(shù)曲線

    C語言繪制三角函數(shù)曲線

    這篇文章主要為大家詳細(xì)介紹了C語言繪制三角函數(shù)曲線,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評論