国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

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

2020-01-26 15:50:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

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

vector和map都不能將it++寫(xiě)在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;

}

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 海丰县| 同心县| 和政县| 鄯善县| 天祝| 赤水市| 会昌县| 阜新市| 临澧县| 永登县| 京山县| 永川市| 江口县| 江北区| 麻城市| 永嘉县| 尤溪县| 普陀区| 太原市| 东明县| 江源县| 麻栗坡县| 泸溪县| 榆树市| 安泽县| 客服| 吉林省| 苍梧县| 喜德县| 临潭县| 太白县| 同德县| 禹州市| 团风县| 九台市| 新邵县| 滨州市| 普兰县| 中宁县| 文山县| 台北县|