国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 屏东县| 尼玛县| 奈曼旗| 岑溪市| 庄河市| 蓝田县| 正安县| 东乡县| 新丰县| 龙南县| 迭部县| 台东县| 宝鸡市| 红安县| 壶关县| 安义县| 建湖县| 阜宁县| 改则县| 灵武市| 深水埗区| 双江| 兴义市| 昔阳县| 金昌市| 瑞金市| 卢湾区| 合肥市| 荆州市| 昭平县| 离岛区| 马公市| 安顺市| 休宁县| 江华| 南溪县| 天长市| 石屏县| 中西区| 馆陶县| 台安县|