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

兔子的技術博客

兔子

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

留言簿(10)

最新評論

閱讀排行榜

評論排行榜

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

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

1. 對于關聯容器(如map, set, multimap,multiset),刪除當前的iterator,僅僅會使當前的iterator失效,只要在erase時,遞增當前iterator即可。這是因為map之類的容器,使用了紅黑樹來實現,插入、刪除一個結點不會對其他結點造成影響。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使用了連續分配的內存,刪除一個元素導致后面所有的元素會向前移動一個位置。所以不能使用erase(iter++)的方式,還好erase方法可以返回下一個有效的iterator。
for (iter = cont.begin(); iter != cont.end();)
{
   (*it)->doSomething();
   if (shouldDelete(*iter))
      iter = cont.erase(iter); 
   else
      ++iter;
}
3. 對于list來說,它使用了不連續分配的內存,并且它的erase方法也會返回下一個有效的iterator,因此上面兩種方法都可以使用。

刪除數組中某個元素后連續重復的元素,例如 1,1,2,3,3,1,1,1,4,0 ---> 1, 2,3,1,4,0。給出問題的一個正確的實現:
#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來實現不是很適合,因為每次刪除一個元素,都會引起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 會飛的兔子 閱讀(495) 評論(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>
            欧美高清视频一区二区| 亚洲精品九九| 欧美成人高清视频| 亚洲高清视频中文字幕| aa级大片欧美三级| 尤物精品国产第一福利三区| 亚洲一区二区三区在线| 亚洲日韩成人| 亚洲性夜色噜噜噜7777| 99国产麻豆精品| 亚洲影院一区| 亚洲在线成人精品| 99亚洲一区二区| 亚洲精品老司机| 在线视频中文亚洲| 久久成人资源| 欧美激情片在线观看| 亚洲欧美精品伊人久久| 亚洲激情在线播放| 欧美成人免费在线视频| 亚洲国产欧美国产综合一区| 亚洲日韩中文字幕在线播放| 亚洲老板91色精品久久| 亚洲国产精品久久久久| 极品少妇一区二区三区精品视频 | 亚洲国产成人久久综合一区| 国产一区亚洲| 亚洲欧美在线一区二区| 久热精品在线| 中日韩美女免费视频网站在线观看| 亚洲网站视频福利| 看欧美日韩国产| 欧美日韩成人综合在线一区二区| 蜜桃视频一区| …久久精品99久久香蕉国产| 亚洲视频一起| 日韩视频在线你懂得| 免费看精品久久片| 国产在线不卡精品| 久久久精品2019中文字幕神马| 欧美在线免费观看亚洲| 伊人久久大香线| 亚洲欧美日韩另类精品一区二区三区 | 久久夜色精品国产欧美乱极品| 一区二区三区四区五区精品| 亚洲大片av| 亚洲午夜久久久久久久久电影网| 亚洲国产精品一区二区第一页| 亚洲一区二区三区四区中文| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品久久久久久久浪潮网站| 久久久xxx| 欧美激情综合五月色丁香| 亚洲一卡久久| 欧美精品情趣视频| 久久综合网络一区二区| 欧美精品三级| 欧美一区二区在线免费播放| 一区二区三区国产精品| 亚洲一区二区三| 99精品99| 国产欧美视频一区二区| 久久精品动漫| 国产精品女人久久久久久| 欧美激情一区二区三区四区| 国产婷婷色一区二区三区| 亚洲免费播放| 日韩图片一区| 久久久国产成人精品| 性色av香蕉一区二区| 男人的天堂成人在线| 欧美在线免费观看| 欧美日韩在线观看视频| 欧美激情精品久久久久久蜜臀| 欧美日韩国产色综合一二三四| 久久久人成影片一区二区三区观看 | 久久精品国产99国产精品| 国产欧美日韩视频一区二区三区 | 亚洲一区一卡| 亚洲图中文字幕| 亚洲女女女同性video| 久久综合伊人77777蜜臀| 欧美日韩不卡合集视频| 亚洲黄网站在线观看| 亚洲人成7777| 欧美日韩国产123| 夜夜爽av福利精品导航 | 欧美日韩国产成人在线免费| 亚洲激情精品| 久久aⅴ国产紧身牛仔裤| 国产日韩欧美综合| 欧美gay视频激情| 亚洲图片你懂的| 久久伊人精品天天| 亚洲日本成人女熟在线观看| 欧美日韩另类视频| 久久精品五月| 亚洲自拍三区| 国产精品99久久久久久宅男 | 亚洲日本成人| 极品尤物av久久免费看| 欧美日韩一区二区三区四区在线观看| 香蕉精品999视频一区二区| 亚洲高清自拍| 亚洲国产精彩中文乱码av在线播放| 亚洲综合日韩中文字幕v在线| 在线观看欧美成人| 狠狠干成人综合网| 中文精品视频一区二区在线观看| 亚洲国产欧美一区二区三区久久 | 国产亚洲综合在线| 欧美日韩精品一二三区| 欧美激情一区二区三区成人 | 亚洲视频第一页| 99天天综合性| 亚洲午夜精品一区二区三区他趣| 国产偷久久久精品专区| 国产精品久久久久久久久久久久 | 老色鬼久久亚洲一区二区| 午夜精品美女自拍福到在线 | 欧美高清免费| 美女被久久久| 欧美黄色aaaa| 一区二区三区你懂的| 亚洲免费视频一区二区| 欧美一区91| 欧美二区在线| 欧美日韩一卡| 在线免费观看日本欧美| 亚洲盗摄视频| 亚欧成人精品| 亚洲另类春色国产| 久久精品国产免费观看| 欧美日韩成人一区二区| 国产一区二区丝袜高跟鞋图片| 亚洲高清在线播放| 欧美一区二区三区免费看| 亚洲大胆视频| 久久噜噜噜精品国产亚洲综合| 欧美黄色一区| 亚洲国语精品自产拍在线观看| 亚洲图片欧洲图片日韩av| 美女性感视频久久久| 中文日韩电影网站| 欧美精品久久一区二区| 黄色在线一区| 久热精品视频| 久久国产精彩视频| 国产揄拍国内精品对白| 亚洲午夜三级在线| 这里只有精品视频在线| 免费观看亚洲视频大全| 久久激情网站| 狠狠干狠狠久久| 欧美成人有码| 国产精品99久久99久久久二8| 欧美国产视频日韩| 乱人伦精品视频在线观看| 在线播放中文字幕一区| 久久精品欧美日韩| 久久av免费一区| 欲色影视综合吧| 欧美激情一区二区三区全黄 | 欧美自拍丝袜亚洲| 欧美一区不卡| 亚洲美洲欧洲综合国产一区| 在线一区二区视频| 国产精品一区二区三区久久久| 久久精品中文字幕一区| 久久免费视频这里只有精品| 99精品欧美一区二区蜜桃免费| 这里只有精品视频在线| 激情成人综合| 亚洲一区在线直播| 亚洲人成欧美中文字幕| 亚洲欧美日韩国产一区二区三区| 亚洲国产精彩中文乱码av在线播放| 99这里只有久久精品视频| 伊人伊人伊人久久| 亚久久调教视频| 国产精品v欧美精品∨日韩| 欧美主播一区二区三区美女 久久精品人| 久久精品视频在线| 久久亚洲午夜电影| 国产午夜精品麻豆| 亚洲免费在线| 香蕉乱码成人久久天堂爱免费| 欧美日韩精品一本二本三本| 欧美黄色aaaa| 中国av一区| 欧美亚洲第一区| 亚洲图片自拍偷拍| 欧美一级网站| 亚洲视频精选在线| 亚洲一区二区三区四区五区黄| 欧美视频在线观看| 在线午夜精品| 久久亚洲欧美国产精品乐播| 依依成人综合视频| 欧美日韩国内自拍|