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

兔子的技術博客

兔子

   :: 首頁 :: 聯(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>
            亚洲欧美日韩精品久久奇米色影视| 国产精品乱码久久久久久| 欧美成人一品| 玖玖精品视频| 裸体一区二区三区| 免费成人黄色av| 亚洲啪啪91| 一本色道88久久加勒比精品| av不卡在线看| 久久av二区| 欧美成人国产| 欧美视频在线观看视频极品| 国产精品女同互慰在线看| 国产亚洲激情| 欧美亚洲视频一区二区| 韩国精品久久久999| 国产亚洲欧美另类一区二区三区| 国产亚洲人成网站在线观看| 在线看日韩欧美| 日韩午夜激情电影| 亚洲女性裸体视频| 久久综合精品国产一区二区三区| 亚洲二区精品| 亚洲校园激情| 麻豆freexxxx性91精品| 欧美日韩精品一区二区三区| 国产精品一区二区你懂得| 精品99一区二区三区| 99国产精品国产精品久久 | 免费亚洲婷婷| 久久九九久精品国产免费直播 | 一区二区不卡在线视频 午夜欧美不卡在| 日韩一级视频免费观看在线| 久久国产精品久久久久久久久久 | 欧美一区二区三区精品| 老司机免费视频久久| 一区二区三区日韩在线观看| 久久久女女女女999久久| 国产精品成人在线| 日韩一区二区精品| 一本色道久久综合| 久久免费视频这里只有精品| 欧美在线播放| 国产精品久久久久久久9999| 亚洲国产精品毛片| 欧美一区二区精品| 亚洲欧洲一区二区在线播放 | 久久影音先锋| 亚洲欧美日韩另类| 国产精品美女久久久浪潮软件| 91久久久国产精品| 久久精品国产99精品国产亚洲性色 | 国产精品激情偷乱一区二区∴| ●精品国产综合乱码久久久久 | 亚洲精品一区二区三区av| 久久亚洲高清| 亚洲第一福利在线观看| 麻豆国产精品777777在线| 欧美在线地址| 狠狠爱综合网| 欧美成人高清| 欧美福利一区二区| 一区二区高清| 一区二区三区精密机械公司| 欧美四级电影网站| 欧美在线观看你懂的| 性色av香蕉一区二区| 国产一区二区三区av电影| 久久久精品免费视频| 久久久久高清| 亚洲高清在线播放| 亚洲欧洲一区二区在线观看| 欧美日韩一区二区国产| 午夜精品久久久久久久久久久| 亚洲影院免费| 狠狠色狠狠色综合日日小说| 老司机精品视频网站| 免费中文字幕日韩欧美| 一区二区三区四区五区视频| 亚洲视频免费观看| 国产亚洲福利| 欧美激情久久久久久| 欧美日韩一卡| 免费成人高清视频| 欧美精品色综合| 亚洲欧美国产制服动漫| 久久精品主播| 亚洲一区二区成人在线观看| 欧美在线视频播放| 9久草视频在线视频精品| 亚洲综合日韩| 亚洲精品四区| 亚洲欧美日韩精品综合在线观看| 1204国产成人精品视频| 一区二区三区久久久| 狠狠色伊人亚洲综合网站色| 亚洲精品久久久久| 国产一区二区三区自拍| 亚洲精品一区在线观看| 韩国欧美一区| 亚洲蜜桃精久久久久久久| 合欧美一区二区三区| 一区二区三区精密机械公司| 亚洲激情视频在线| 欧美一区二区在线免费观看| 一区二区久久久久久| 久久精品国产99国产精品澳门| 99re在线精品| 媚黑女一区二区| 久久不射2019中文字幕| 欧美欧美在线| 欧美夫妇交换俱乐部在线观看| 国产精品午夜电影| 日韩午夜av在线| 亚洲欧洲另类| 久久人91精品久久久久久不卡| 欧美一区二区精品| 国产精品久久久久免费a∨| 亚洲精品少妇| 亚洲人人精品| 欧美成人亚洲成人日韩成人| 老司机一区二区三区| 国产午夜精品一区二区三区视频 | 蜜臀99久久精品久久久久久软件| 欧美综合二区| 国产精品www色诱视频| 亚洲日韩欧美视频一区| 亚洲精品在线视频观看| 欧美14一18处毛片| 欧美成人三级在线| 国产精品久线观看视频| 久久久久久穴| 欧美日韩成人网| 久久在线视频| 国产一区二区三区视频在线观看| 亚洲免费播放| av72成人在线| 欧美激情视频一区二区三区不卡| 久热精品视频在线免费观看 | 一区二区在线看| 久久国产福利| 久久亚洲精品网站| 激情另类综合| 麻豆91精品| 最新精品在线| 一区二区三区 在线观看视频| 欧美日韩成人在线观看| 999亚洲国产精| 欧美一区网站| 黄色精品网站| 免费短视频成人日韩| 亚洲激情第一页| 亚洲调教视频在线观看| 国产精品免费视频xxxx| 亚洲欧美国产精品va在线观看| 久久精品99国产精品| 在线观看91精品国产入口| 麻豆精品传媒视频| 亚洲美女在线观看| 欧美一区二区视频在线观看| 狠狠久久亚洲欧美专区| 欧美精品日韩精品| 午夜精品剧场| 欧美黄色片免费观看| 亚洲欧美日韩国产一区| 狠狠色2019综合网| 欧美久久九九| 午夜精品影院在线观看| 欧美成人精品1314www| 亚洲一区免费观看| 狠狠噜噜久久| 欧美性事在线| 免费日韩一区二区| 亚洲午夜国产成人av电影男同| 久久视频免费观看| 一本大道久久a久久精品综合| 国产欧美精品在线播放| 欧美激情一区二区三区在线| 亚洲自拍电影| 亚洲乱码日产精品bd| 久久五月激情| 亚洲影院色在线观看免费| 亚洲国产高清在线观看视频| 国产精品免费区二区三区观看| 欧美freesex交免费视频| 亚洲欧美精品一区| 亚洲人永久免费| 欧美成人精品| 久久婷婷国产综合精品青草| 亚洲在线中文字幕| 亚洲人成在线免费观看| 国产一区二区三区在线观看免费| 欧美日韩精品在线视频| 久久夜色精品国产欧美乱极品| 中日韩高清电影网| 夜夜爽www精品| 亚洲精品人人| 日韩午夜免费视频| 亚洲精选一区| 亚洲观看高清完整版在线观看|