青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 132  文章 - 51  trackbacks - 0
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(7)

隨筆分類

隨筆檔案

文章分類

文章檔案

cocos2d-x

OGRE

OPenGL

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

遍歷一個容器同時刪除這個容器的迭代器,會使這個容器失效
來看下什么是迭代器, 任何特定的迭代器都是某個類型的對象,vectorr的迭代器可以被實現為一個到vector的指針,加一個下標
表的迭代器可以是一個指向鏈表的指針, 所有迭代器的共同之處在于它們的語義,以及它們的有關操作的名字。
eg.迭代器++操作總是產生引用下一個元素的迭代器, *總是產生這個迭代器引用的那個元素,基本上符合這些的都可以成為迭代器了

常用的遍歷刪除迭代器方法,拿map舉例
  map<intint> mp;
    
forint i = 0; i < 10++i )
    {
        mp[i] 
= i;
    }

    map
<intint>::iterator iter = mp.begin();
    
while( iter != mp.end() )
    {
        
if ( iter->first < 10 )
        {
            mp.erase( 
iter++ );        
        }
         else
        {
            
++iter;
        }
    }
在刪除時記錄下下一個有效的迭代器就OK了

如果用同樣的方法使用在vector上就崩了,這個是為什么呢

vector<int> vec;
    
forint i = 0 ;i < 20++i )
    {
        vec.push_back( i );
    } 

    vector
<int>::iterator it = vec.begin();
    
while( it != vec.end() )
    {
        
if ( *it < 10 )
        {
           
 vec.erase( it++ );      // 導致崩潰        
        }
        else
        {
            
++it;
        }
    }

這是因為vector和list,map刪除迭代器后結果不一樣, 因為map, list刪除迭代器后,只有當前刪除的迭代器無效, it++就可以獲得下一個有效的迭代器了,但是vector 刪除迭代器后,
當前刪除的迭代器之后的所有迭代器都會失效

正確方法
#include <windows.h>
#include 
<map>
#include 
<string>
#include 
<list>
#include 
<vector>
#include 
<algorithm>
using namespace std;

bool gt_val( int val )
{
    
return val%2 == 0 ? true : false;
}

int main()
{
    vector
<int> vec;
    
forint i = 0 ;i < 20++i )
    {
        vec.push_back( i );
    }
    
    
// 標準庫調用方法
    vector<int>::iterator it = vec.begin();
    
while( (it = find_if( it, vec.end(), gt_val))!= vec.end() )
    {
        it 
= vec.erase( it );
    }

    
// 普通調用方法
    it = vec.begin();
    
while( it != vec.end() )
    {
        
if ( *it < 10 )
        {
           
 it = vec.erase( it );        
        }
        else
        {
            
++it;
        }
    }
    
    
    map
<intint> mp;
    
forint i = 0; i < 10++i )
    {
        mp[i] 
= i;
    }

    map
<intint>::iterator iter = mp.begin();
    
while( iter != mp.end() )
    {
        
if ( iter->first < 10 )
        {
          
  iter = mp.erase( iter );        
        }
        else
        {
            
++iter;
        }
    }

}

posted on 2011-11-08 17:33 風輕云淡 閱讀(708) 評論(0)  編輯 收藏 引用 所屬分類: C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费看的黄色欧美网站| 久久色中文字幕| 亚洲风情亚aⅴ在线发布| 亚洲一区二区三区免费观看| 欧美日韩精品免费| 亚洲永久视频| 亚洲欧美国产77777| 国产精品亚洲第一区在线暖暖韩国| 99re66热这里只有精品3直播| 免费在线视频一区| 欧美成人综合| 宅男噜噜噜66一区二区| 亚洲一区二区三区三| 激情综合色丁香一区二区| 免费在线日韩av| 欧美特黄一区| 久久久久成人网| 欧美精品国产精品日韩精品| 日韩视频免费看| 亚洲在线观看免费| 亚洲第一在线视频| 欧美国产综合视频| 亚洲无限乱码一二三四麻| 国产精品在线看| 久久综合久久久久88| 欧美大片免费观看在线观看网站推荐| 亚洲最新视频在线播放| 香港久久久电影| 亚洲乱码视频| 欧美在线不卡| 99视频+国产日韩欧美| 亚洲女人天堂成人av在线| 在线观看91精品国产入口| 99re6这里只有精品视频在线观看| 国产酒店精品激情| 亚洲黄色免费电影| 国产欧美在线视频| 亚洲国产欧美一区二区三区久久| 国产精品久久久久99| 欧美大片在线观看| 国产美女在线精品免费观看| 亚洲丶国产丶欧美一区二区三区 | 免费日韩av| 欧美视频在线播放| 免费日韩成人| 国产日本欧美一区二区三区在线| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产一区二区三区的电影| 亚洲激情视频网站| 在线观看不卡av| 亚洲欧美综合| 亚洲专区在线视频| 欧美激情1区| 免费在线播放第一区高清av| 国产精品一区免费观看| 99国产精品视频免费观看| 亚洲黄色免费电影| 久久久不卡网国产精品一区| 香蕉久久夜色精品国产使用方法| 欧美精品一区二区三区视频| 你懂的国产精品| 激情久久久久久久| 欧美在线在线| 久久久噜噜噜久久中文字幕色伊伊 | 久久一区二区三区国产精品| 久久激情中文| 国产欧美在线| 久久er精品视频| 久久久一区二区三区| 亚洲一区三区视频在线观看| 中日韩高清电影网| 欧美三区在线| 亚洲一二三级电影| 久久丁香综合五月国产三级网站| 国产精品网曝门| 亚洲欧美日本精品| 久久久久国产成人精品亚洲午夜| 国产精品免费区二区三区观看| 中文欧美在线视频| 欧美一级视频精品观看| 国产亚洲精品久久久久久| 羞羞视频在线观看欧美| 久久精品国产第一区二区三区最新章节 | 亚洲国产欧美日韩另类综合| 亚洲美女免费视频| 欧美日韩三区| 亚洲欧美日韩综合国产aⅴ| 性久久久久久久久久久久| 国产午夜精品全部视频在线播放| 久久国产88| 亚洲国产三级在线| 亚洲自拍16p| 红桃视频欧美| 欧美激情一二三区| 亚洲一区二区三区免费视频| 久久亚洲精品一区二区| 1000部国产精品成人观看| 欧美福利一区二区三区| 一区二区免费看| 久久婷婷麻豆| 一区二区三区四区五区视频 | 久久一区二区三区四区五区| 亚洲欧洲美洲综合色网| 欧美在线免费一级片| 亚洲国产精品成人精品| 国产精品video| 久久一区二区三区四区| 亚洲一区二区精品视频| 免费欧美在线| 欧美一进一出视频| 亚洲美女视频在线免费观看| 国产精品日本| 欧美激情偷拍| 久久久.com| 亚洲视频一区在线| 亚洲国产va精品久久久不卡综合| 亚洲在线观看免费视频| 亚洲激情网址| 国内精品一区二区三区| 欧美性理论片在线观看片免费| 久久久国产一区二区三区| 一区二区三区四区精品| 欧美激情bt| 久久色在线播放| 欧美中文在线视频| 亚洲手机在线| 日韩视频免费大全中文字幕| 精品91视频| 国产亚洲综合性久久久影院| 欧美性猛交视频| 欧美精品在线免费| 欧美sm重口味系列视频在线观看| 亚洲欧美成人综合| 亚洲视频在线视频| 99在线|亚洲一区二区| 亚洲黄色性网站| 欧美成人tv| 欧美va天堂va视频va在线| 久久久久亚洲综合| 久久久久一区二区| 久久综合久久88| 亚洲国产精品一区在线观看不卡 | 国产美女精品一区二区三区| 国产精品国产三级欧美二区| 欧美日韩亚洲一区二区三区在线观看| 久久综合久久美利坚合众国| 久久精品五月| 久久久无码精品亚洲日韩按摩| 欧美一区二区视频在线观看| 午夜一区二区三视频在线观看 | 免费久久久一本精品久久区| 久久精品成人一区二区三区| 久久超碰97中文字幕| 久久国产精品99国产精| 久久久久久久一区二区| 久久精品视频在线| 久久综合狠狠综合久久激情| 久久伊人一区二区| 欧美激情无毛| 亚洲精品国产精品久久清纯直播 | 欧美第十八页| 亚洲黄色三级| 在线一区二区日韩| 亚洲欧美视频一区| 老色批av在线精品| 欧美精品一区二区三区在线看午夜 | 99国产精品久久久久久久成人热 | 亚洲国产裸拍裸体视频在线观看乱了| 亚洲日本中文字幕| 亚洲午夜av| 久久精品日韩| 欧美激情亚洲国产| 国产精品激情电影| 国产一区二区三区精品欧美日韩一区二区三区| 国产午夜精品视频| 亚洲免费成人av电影| 99v久久综合狠狠综合久久| 小辣椒精品导航| 老色鬼精品视频在线观看播放| 亚洲电影在线观看| 亚洲免费伊人电影在线观看av| 久久精品日韩一区二区三区| 欧美日韩的一区二区| 国产一区观看| 一区二区三区视频在线看 | 极品少妇一区二区三区精品视频 | 国产亚洲成精品久久| 亚洲欧洲日产国码二区| 亚洲一区二区在线播放| 久久综合激情| 这里只有视频精品| 免费成人在线视频网站| 国产毛片一区| 日韩小视频在线观看| 久久久久久久999| 亚洲片在线观看| 久久精品国产久精国产一老狼 | 免费成人在线视频网站| 国产精品日日做人人爱| 亚洲美女黄网|