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

兔子的技術博客

兔子

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  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 會飛的兔子 閱讀(500) 評論(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大片欧美| 美日韩精品视频免费看| 日韩亚洲不卡在线| 亚洲视频一区二区免费在线观看| 国产精品午夜春色av| 久久久久免费视频| 欧美a级理论片| 亚洲一区二区三区四区在线观看| 亚洲一区亚洲二区| 亚洲高清久久| 在线一区视频| 国产综合欧美在线看| 亚洲国产精品福利| 国产精品嫩草影院av蜜臀| 免费一区二区三区| 国产精品福利在线观看| 免费成人你懂的| 欧美视频免费看| 久久综合九色综合欧美就去吻| 欧美激情精品久久久久久蜜臀 | 欧美一区二区三区免费视频| 久久精品国产亚洲5555| 一本大道av伊人久久综合| 欧美中文字幕久久| 中文一区二区| 久久综合九色综合欧美就去吻| 亚洲欧美日韩国产精品 | 日韩亚洲精品在线| 激情欧美一区二区三区| 宅男66日本亚洲欧美视频| 亚洲激情第一页| 性欧美xxxx大乳国产app| 亚洲免费av观看| 久久久精品网| 欧美一区二区三区在线观看| 欧美成人亚洲成人| 久久婷婷麻豆| 国产欧美一区二区三区在线老狼 | 玖玖在线精品| 午夜影院日韩| 欧美日韩国产探花| 欧美国产一区二区| 狠狠久久婷婷| 性18欧美另类| 新片速递亚洲合集欧美合集| 欧美久久婷婷综合色| 欧美大片一区二区三区| 国内视频一区| 欧美在线观看你懂的| 亚洲男人天堂2024| 欧美日韩一级黄| 亚洲精品少妇| 亚洲美女av电影| 欧美精品激情在线| 亚洲激情欧美| 夜色激情一区二区| 欧美精品18+| 亚洲精品小视频在线观看| 亚洲精品欧美日韩专区| 欧美第十八页| 亚洲精选在线| 亚洲一区在线看| 国产精品极品美女粉嫩高清在线| 亚洲美女网站| 亚洲影院免费观看| 国产精品久久久久久久久久久久| 亚洲深夜福利视频| 欧美一级视频免费在线观看| 国产精品无码永久免费888| 亚洲欧美偷拍卡通变态| 久久精品久久综合| 亚洲国产成人不卡| 欧美另类99xxxxx| 妖精成人www高清在线观看| 亚洲欧美日韩人成在线播放| 国产热re99久久6国产精品| 久久精品123| 亚洲福利国产精品| 亚洲男人第一网站| 国产综合色在线| 欧美电影资源| 亚洲天堂免费观看| 久久婷婷亚洲| 亚洲免费观看| 国产精品一区在线观看你懂的| 久久精品毛片| 亚洲日本无吗高清不卡| 欧美一区二区三区四区视频| 在线精品国产欧美| 欧美日韩免费观看一区| 午夜精品视频在线观看一区二区| 欧美成人免费在线观看| 亚洲免费视频观看| 亚洲国产精品久久久久秋霞不卡 | 一区一区视频| 欧美日韩亚洲激情| 欧美一区二区免费视频| 91久久精品国产| 亚洲欧美日韩国产成人| 亚洲国产精品va在线观看黑人| 欧美日韩在线播放三区| 久久精品国产亚洲a| 亚洲精品欧美极品| 久久永久免费| 午夜一级在线看亚洲| 亚洲激情二区| 国产一区二区三区四区老人| 欧美日本在线播放| 久久精品在线播放| 亚洲免费婷婷| 亚洲毛片一区二区| 欧美高清在线观看| 久久久久久色| 亚洲自拍偷拍网址| 一区二区三区四区五区精品视频| 在线观看欧美一区| 国产亚洲激情视频在线| 国产精品久久久久久久久果冻传媒| 久久夜色精品国产| 久久精品中文| 欧美一区二区视频免费观看| 99视频热这里只有精品免费| 亚洲国产精品一区| 免费的成人av| 老鸭窝毛片一区二区三区| 欧美在线视频一区二区三区| 中文一区二区| 一区二区高清在线| 日韩午夜中文字幕| 99视频超级精品| 一本大道av伊人久久综合| 最近看过的日韩成人| 91久久精品国产| 亚洲精品视频在线观看免费| 亚洲国产精品www| 亚洲国产天堂久久国产91| 亚洲国产电影| 亚洲日本激情| 日韩一级裸体免费视频| 亚洲精品日日夜夜| 日韩视频永久免费观看| 亚洲精品乱码久久久久| 亚洲最新色图| 亚洲影院免费| 久久aⅴ国产欧美74aaa| 久久久久久久综合| 久久视频这里只有精品| 美女脱光内衣内裤视频久久网站| 欧美电影资源| 99国产麻豆精品| 亚洲男人第一av网站| 欧美一级大片在线观看| 久久久久久**毛片大全| 欧美二区在线| 欧美视频在线观看免费| 国产精自产拍久久久久久蜜| 国产一区二区欧美| 91久久极品少妇xxxxⅹ软件| aa级大片欧美三级| 午夜视频在线观看一区二区三区 | 99在线精品视频在线观看| 亚洲一区日韩| 久久久久久久久综合| 亚洲成人自拍视频| 中日韩美女免费视频网址在线观看| 亚洲欧美日韩精品一区二区 | 久久高清福利视频| 美女诱惑黄网站一区| 欧美亚一区二区| 激情成人av| 99国产精品自拍| 久久国产天堂福利天堂| 亚洲国产视频一区二区| 亚洲一区二区三区免费视频 | 99精品久久免费看蜜臀剧情介绍| 亚洲综合精品| 欧美成人中文字幕| 国产精品一区久久| 日韩午夜在线| 久久麻豆一区二区| 在线天堂一区av电影| 久久一区二区精品| 国产精品视频精品视频| 亚洲国产欧美一区二区三区丁香婷| 亚洲综合丁香| 亚洲级视频在线观看免费1级| 亚洲欧美日韩国产| 欧美视频一区在线观看| 91久久久久久久久久久久久| 久久国产精品99久久久久久老狼| 亚洲精品国精品久久99热一| 久久精品在线观看|