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

兔子的技術博客

兔子

   :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

留言簿(10)

最新評論

閱讀排行榜

評論排行榜

當一個容器變化時,指向該容器中元素的迭代器可能失效。這使得在迭代器變化期間改變容器容易出現(xiàn)問題。在這方面,不同的容器提供不同的保障:
vectors: 引起內存重新分配的插入運算使所有迭代器失效,插入也使得插入位置及其后位置的迭代器失效,刪除運算使得刪除位置及其后位置的迭代器失效.
vector的push_back操作 可能沒事,但是一旦引發(fā)內存重分配,所有迭代器都會失效;
vector的insert操作 插入點之后的所有迭代器失效;但一旦引發(fā)內存重分配,所有迭代器都會失效;
vector的erase操作 插入點之后的所有迭代器失效;
vector的reserve操作 所有迭代器失效(因為它導致內存重分配);

list/map: 插入不會使得任何迭代器失效;刪除運算使指向刪除位置的迭代器失效,但是不會失效其他迭代器.
deque的insert操作 所有迭代器失效;
deque的erase操作 所有迭代器失效;

1. 對于關聯(lián)容器(如map, set, multimap,multiset),刪除當前的iterator,僅僅會使當前的iterator失效,只要在erase時,遞增當前iterator即可。這是因為map之類的容器,使用了紅黑樹來實現(xiàn),插入、刪除一個結點不會對其他結點造成影響。erase迭代器只是被刪元素的迭代器失效,但是返回值為void,所以要采用erase(iter++)的方式刪除迭代器。
for (iter = cont.begin(); it != cont.end();)
{
   (*iter)->doSomething();
   if (shouldDelete(*iter))
      cont.erase(iter++);
   else
      ++iter;
}

2. 對于序列式容器(如vector,deque),刪除當前的iterator會使后面所有元素的iterator都失效。這是因為vetor,deque使用了連續(xù)分配的內存,刪除一個元素導致后面所有的元素會向前移動一個位置。所以不能使用erase(iter++)的方式,還好erase方法可以返回下一個有效的iterator。
for (iter = cont.begin(); iter != cont.end();)
{
   (*it)->doSomething();
   if (shouldDelete(*iter))
      iter = cont.erase(iter); 
   else
      ++iter;
}
3. 對于list來說,它使用了不連續(xù)分配的內存,并且它的erase方法也會返回下一個有效的iterator,因此上面兩種方法都可以使用。

刪除數(shù)組中某個元素后連續(xù)重復的元素,例如 1,1,2,3,3,1,1,1,4,0 ---> 1, 2,3,1,4,0。給出問題的一個正確的實現(xiàn):
#include <iostream>  
#include 
<vector>  
using namespace std;  
  
int main(int argc, char* argv[])  
{  
   
int a[] = {11333241110};  
   
int size = sizeof(a)/sizeof(a[0]);  
  
  
   vector
<int> vec(a, a+size);  
  
  
   vector
<int>::iterator iter = vec.begin();  
   
int previous = *iter;  
   
++iter;  
   
for (; iter != vec.end();)  
   {          
      
if(*iter == previous)  
      {  
         iter 
= vec.erase(iter);  
      }  
      
else  
      {  
         previous 
= *iter;  
         
++iter;  
      }      
   }  
  
  
   
for(iter = vec.begin(); iter != vec.end(); ++iter)  
   {  
      cout 
<< *iter << endl;  
   }  
     
   
return 0;  
}  
PS. 不過實際上這個問題,用vector來實現(xiàn)不是很適合,因為每次刪除一個元素,都會引起vector的一個resize操作。resize的時間復雜度是O(n),整個的resize操作要花費O(n^2)。最好是選擇list最為容器,list最適合那些需要在容器中間做插入、刪除的例子。

轉自:http://blog.csdn.net/heyutao007/article/details/6937236
posted on 2013-09-24 21:12 會飛的兔子 閱讀(491) 評論(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>
            欧美怡红院视频| 国产一区二区三区无遮挡| 最新日韩在线视频| 久久精品国产999大香线蕉| 亚洲免费影院| 午夜精品一区二区三区四区 | 久久精品人人做人人综合| 国产嫩草一区二区三区在线观看| 免费久久99精品国产自| 久久一区二区三区超碰国产精品| 久久久国产91| 欧美成人一品| 欧美午夜大胆人体| 国产午夜精品美女毛片视频| 国内精品一区二区三区| 永久免费精品影视网站| 亚洲黄色尤物视频| 亚洲美女中文字幕| 亚洲欧美在线磁力| 另类亚洲自拍| 日韩视频一区二区三区在线播放免费观看 | 亚洲国产精品精华液网站| 亚洲日本理论电影| 亚洲综合成人在线| 免播放器亚洲| 国产精品专区一| 亚洲国产精品专区久久| 亚洲永久免费av| 美国成人毛片| 亚洲无玛一区| 美女诱惑一区| 国产亚洲欧美一区二区三区| 亚洲精品久久久久中文字幕欢迎你 | 日韩视频第一页| 久久精选视频| 国产精品免费一区二区三区观看| 极品少妇一区二区三区精品视频| 99在线精品视频| 噜噜噜91成人网| 亚洲一区二区三区精品在线观看| 欧美 亚欧 日韩视频在线| 国产亚洲毛片在线| 亚洲欧美在线aaa| 亚洲精品网址在线观看| 久久久久久一区二区| 国产精品热久久久久夜色精品三区 | 欧美日韩国产精品一区| 亚洲成人中文| 久久久久久亚洲精品杨幂换脸| 99re6这里只有精品| 免费成人高清| 黑人中文字幕一区二区三区| 午夜天堂精品久久久久| 一本大道久久a久久精二百| 欧美黑人一区二区三区| 亚洲欧洲一区二区三区久久| 免费av成人在线| 久久精品国产综合| 亚洲一区激情| 日韩天堂av| 欧美另类极品videosbest最新版本| 在线精品国产欧美| 免费观看成人www动漫视频| 久久久91精品国产| 在线看视频不卡| 欧美国产高清| 欧美激情一区二区三区全黄| 亚洲美女精品成人在线视频| 91久久香蕉国产日韩欧美9色| 欧美不卡视频一区发布| 亚洲麻豆av| 一区二区三欧美| 国产精品一区二区久久久久| 久久精品九九| 久久久久久久尹人综合网亚洲| 樱花yy私人影院亚洲| 欧美激情精品久久久久久| 欧美刺激性大交免费视频| 亚洲精品中文在线| 99视频在线观看一区三区| 国产精品毛片va一区二区三区 | 国产亚洲欧美日韩美女| 久久综合给合| 欧美激情亚洲国产| 亚洲欧美综合网| 久久精品视频va| 亚洲美女av网站| 亚洲无线视频| 在线看一区二区| 中日韩视频在线观看| 国产日韩在线看片| 亚洲二区三区四区| 国产精品视频久久一区| 麻豆精品传媒视频| 欧美日韩精品免费观看视频完整| 午夜国产不卡在线观看视频| 久久精品一二三区| 亚洲无吗在线| 久久亚洲精品视频| 亚洲伊人第一页| 久久亚洲综合网| 亚洲欧美日韩国产中文 | 午夜亚洲视频| 亚洲免费观看在线观看| 亚洲欧美中文日韩在线| 亚洲精品美女在线观看| 午夜精品久久久久久久男人的天堂| 亚洲国产精品久久久久秋霞不卡 | 亚洲国产高清aⅴ视频| 国产美女精品人人做人人爽| 亚洲激情二区| 影音先锋另类| 性欧美大战久久久久久久免费观看| 亚洲激情一区二区| 在线亚洲精品| 午夜日韩福利| 亚洲精品视频免费在线观看| 亚洲欧美久久久| 日韩视频一区二区三区| 午夜影院日韩| 亚洲男人影院| 欧美日韩在线亚洲一区蜜芽| 欧美国产精品劲爆| 国内精品视频在线播放| 亚洲欧美日韩精品在线| 亚洲一区二区精品| 欧美日韩一区二区三区| 亚洲国产小视频在线观看| 在线观看亚洲一区| 久久国产免费看| 久久精品夜色噜噜亚洲a∨| 国产精品久久影院| 在线视频亚洲一区| 亚洲欧美在线网| 国产精品久久国产精品99gif | 久久精品国产99| 欧美在线free| 国产麻豆午夜三级精品| 亚洲一区二区四区| 亚洲欧美伊人| 国产女主播一区二区| 亚洲专区一二三| 久久精品国产亚洲高清剧情介绍| 国产精品视频区| 欧美一区永久视频免费观看| 久久精品国产免费观看| 国内免费精品永久在线视频| 欧美一级理论片| 玖玖国产精品视频| 亚洲国产导航| 欧美日产在线观看| 在线综合亚洲| 久久久五月婷婷| 亚洲国产精品一区| 欧美国产1区2区| 在线视频日韩| 久久久久久亚洲精品不卡4k岛国| 影音先锋日韩精品| 欧美日韩国产欧| 亚洲影院免费| 欧美α欧美αv大片| 99精品福利视频| 国产欧美精品| 牛牛国产精品| 亚洲一区二区高清视频| 美女精品在线观看| 夜夜嗨av一区二区三区四季av| 欧美丝袜一区二区三区| 欧美怡红院视频| 亚洲精品中文字幕在线| 欧美一区二区视频97| 在线免费观看日本欧美| 欧美手机在线| 久久亚洲精品中文字幕冲田杏梨| 亚洲精品一区二区网址| 久久久久久国产精品mv| 99热在这里有精品免费| 国产欧美综合在线| 欧美高清自拍一区| 午夜精品视频在线| 欧美激情在线狂野欧美精品| 性久久久久久久| 日韩午夜电影| 在线精品亚洲| 国产亚洲精品aa午夜观看| 亚洲国产精品成人精品 | 国产精品99久久久久久www| 国产欧美精品va在线观看| 蜜桃伊人久久| 欧美伊久线香蕉线新在线| 亚洲精品欧美| 欧美在线短视频| 一本久道久久综合中文字幕| 韩国久久久久| 国产欧美精品一区二区色综合| 欧美人与性动交a欧美精品| 老色鬼精品视频在线观看播放| 欧美一区二区在线看| 亚洲图片欧美午夜| 亚洲精品午夜精品|