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

隨筆 - 96  文章 - 255  trackbacks - 0
<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

E-mail:zbln426@163.com QQ:85132383 長期尋找對戰略游戲感興趣的合作伙伴。

常用鏈接

留言簿(21)

隨筆分類

隨筆檔案

SDL相關網站

我的個人網頁

我的小游戲

資源下載

搜索

  •  

積分與排名

  • 積分 - 495654
  • 排名 - 39

最新評論

閱讀排行榜

評論排行榜

設計一段演示程序:打印n個數字,然后指定擦掉其中的某一個,重新打印剩下的數字。

#include <iostream>
#include 
<vector>

using std::cout;
using std::cin;
using std::endl;
using std::vector;

int main(int argc, char* argv[])
{
    
const int MAX = 10;
    vector
<int> v;
    
for (int i = 0; i < MAX; i++) {
        v.push_back(i);
        cout 
<< v[i] << '\t';
    }

    
int ers = -1;
    
while ( ers < 0 || ers >= MAX) {
        cout 
<< "Erase No.";
        cin 
>> ers;
    }

    
for (vector<int>::const_iterator i = v.begin(); i != v.end(); i++) {
        
if (*== ers) {
            v.erase(i);
        }
    }

    
for (vector<int>::const_iterator i = v.begin(); i != v.end(); i++) {
        cout 
<< *<< '\t';
    }
    cout 
<< endl;

    
return 0;
}
這個程序看似沒什么錯誤,可以順利編譯,也可以順利運行,甚至,大部分情況下可可以正常完成。
我們這里設置的n為10(MAX),事實上,我們擦掉0到8都沒有問題,但是,我們要擦掉9的時候,程序卻出錯了!
在我們遍歷查找對等值的循環中,一開始v.end()指向第10個元素(數值為9)的后面一個位置(不存在的第11個元素的位置)。當迭代器指向第10個元素(數值為9)的時候,v.erase()生效運行;下一輪循環中,迭代器本來應該指向第11個元素的位置,并且等于v.end()并結束循環。但是,因為我們擦掉了vector中的一個元素,v.end()指向的是現在的最后一個元素——第9個元素的后面,也就是第10個元素的位置。這樣,迭代器到了11,而判斷確是其是否到10,這將永遠無法實現,形成了一個邏輯bug,所以系統拋出錯誤了。
一個修正的辦法是把需要擦掉的迭代器找出來,在循環結束后再擦掉,下面修改后的程序就可以正常的擦掉9了。
#include <iostream>
#include 
<vector>

using std::cout;
using std::cin;
using std::endl;
using std::vector;

int main(int argc, char* argv[])
{
    
const int MAX = 10;
    vector
<int> v;
    
for (int i = 0; i < MAX; i++) {
        v.push_back(i);
        cout 
<< v[i] << '\t';
    }

    
int ers = -1;
    
while ( ers < 0 || ers >= MAX) {
        cout 
<< "Erase No.";
        cin 
>> ers;
    }

    vector
<int>::const_iterator ers_i;
    
for (vector<int>::const_iterator i = v.begin(); i != v.end(); i++) {
        
if (*== ers) {
            ers_i 
= i;
        }
    }
    v.erase(ers_i);

    
for (vector<int>::const_iterator i = v.begin(); i != v.end(); i++) {
        cout 
<< *<< '\t';
    }
    cout 
<< endl;

    
return 0;
}
posted on 2010-06-10 11:03 lf426 閱讀(1703) 評論(1)  編輯 收藏 引用 所屬分類: 語言基礎、數據結構與算法

FeedBack:
# re: 迭代器(iterator)“擦”(erase)出的錯誤 2014-11-28 21:07 lizh
演示代碼有點問題:
v.erase(i) i不能為const_iterator對象。  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              国产一区二区三区高清播放| 国产农村妇女精品一二区| 国产欧美一区二区三区另类精品| avtt综合网| 亚洲国产成人av好男人在线观看| 久久久久国产免费免费| 国产一区二区日韩| 久久精品五月| 欧美一区日韩一区| 欧美成人精品激情在线观看| 久久精品亚洲国产奇米99| 狠狠色综合色综合网络| 欧美福利在线观看| 亚洲精品资源| 国产精品电影网站| 亚洲国产精品一区二区三区| 亚洲第一区中文99精品| 欧美美女福利视频| 亚洲资源在线观看| 久久精品国产99国产精品| 亚洲福利视频免费观看| 亚洲人在线视频| 国产精品一区二区久久精品| 久久综合色一综合色88| 欧美黄色免费| 欧美与欧洲交xxxx免费观看| 免费短视频成人日韩| 亚洲深夜福利| 久久福利一区| 亚洲图片你懂的| 久久人人97超碰精品888| aa级大片欧美三级| 欧美一区二区三区成人| 亚洲美女网站| 欧美一级电影久久| 亚洲精品无人区| 性欧美精品高清| 日韩天天综合| 久久av老司机精品网站导航| 一区二区三区日韩| 久久精品中文| 欧美一区二区三区精品电影| 免费成人在线视频网站| 久久精品道一区二区三区| 欧美日韩亚洲视频| 蜜臀久久久99精品久久久久久| 欧美三级免费| 欧美成人视屏| 国产一区在线观看视频| 亚洲深夜影院| 一区二区日韩精品| 免费精品视频| 蜜月aⅴ免费一区二区三区 | 亚洲欧洲在线视频| 韩国精品久久久999| 亚洲视频中文字幕| 99亚洲伊人久久精品影院红桃| 久久久久久国产精品一区| 亚洲欧美日韩视频二区| 欧美日韩精品在线播放| 欧美第一黄色网| 黄色成人在线网站| 小辣椒精品导航| 亚洲欧美影院| 国产精品毛片一区二区三区| 亚洲伦理一区| 亚洲一二三区在线| 欧美日韩在线看| av72成人在线| 亚洲影视九九影院在线观看| 欧美日韩午夜在线| 99热这里只有精品8| 亚洲图片在线观看| 欧美日韩国产综合在线| 亚洲精品一区二区三区樱花| 日韩图片一区| 欧美四级剧情无删版影片| av成人激情| 先锋影音一区二区三区| 国产日产欧美精品| 欧美在线欧美在线| 猛干欧美女孩| 日韩视频免费大全中文字幕| 欧美国产日韩亚洲一区| 日韩午夜一区| 午夜久久影院| 狠狠干综合网| 欧美gay视频| 亚洲美女在线一区| 亚洲欧美日韩一区二区三区在线| 国产精品久久久| 欧美在线视频网站| 欧美高清在线一区| 一区二区三区四区精品| 国产精品五区| 久久综合色播五月| 亚洲精品专区| 久久精品免费电影| 91久久精品美女| 性亚洲最疯狂xxxx高清| 欧美成人有码| 一区二区三区精品视频在线观看| 国产精品私拍pans大尺度在线| 久久久国产成人精品| 亚洲国产高清在线观看视频| 亚洲欧美日韩在线综合| 黄色成人91| 欧美三级视频在线观看| 久久超碰97人人做人人爱| 91久久黄色| 久久久.com| 一区二区三区蜜桃网| 国产又爽又黄的激情精品视频| 免费欧美日韩国产三级电影| 亚洲视频一起| 亚洲国产成人精品女人久久久 | 99热免费精品| 玖玖玖免费嫩草在线影院一区| 99视频精品| 在线欧美日韩| 国产视频久久网| 欧美四级电影网站| 蜜臀久久99精品久久久画质超高清 | 一区二区国产日产| 黄色成人av| 国产精品视频yy9099| 欧美黄色网络| 久久全球大尺度高清视频| 亚洲婷婷国产精品电影人久久 | 亚洲一区免费网站| 亚洲精美视频| 欧美一级二级三级蜜桃| 午夜视频久久久久久| 亚洲美女在线一区| 国产一区免费视频| 欧美性色aⅴ视频一区日韩精品| 欧美激情久久久久| 久久精品免费| 欧美一级欧美一级在线播放| 日韩天堂在线视频| 亚洲国产成人精品视频| 极品日韩久久| 狠狠入ady亚洲精品经典电影| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 日韩午夜av电影| 亚洲国产人成综合网站| 国际精品欧美精品| 国产亚洲激情| 国产亚洲精品aa午夜观看| 国产精品资源| 国产深夜精品| 国产一区再线| 精品福利电影| 亚洲高清资源综合久久精品| 在线视频国内自拍亚洲视频| 在线播放国产一区中文字幕剧情欧美 | 久久久夜夜夜| 老司机免费视频久久| 美女亚洲精品| 欧美成人免费va影院高清| 欧美福利电影网| 欧美日韩国产a| 国产精品免费看| 国产亚洲精品高潮| 悠悠资源网久久精品| 亚洲国产综合视频在线观看| 亚洲人成人99网站| 亚洲视频在线免费观看| 亚洲一区二区三区影院| 欧美一区二区三区久久精品茉莉花| 欧美一区二区女人| 蜜臀久久99精品久久久画质超高清 | 一本色道久久综合精品竹菊| 亚洲影院色在线观看免费| 欧美一区二区三区视频免费| 久热精品视频在线| 亚洲欧洲日本一区二区三区| 一区二区三区你懂的| 欧美影视一区| 欧美极品一区二区三区| 国产精品―色哟哟| 亚洲国产成人精品女人久久久| 亚洲最新色图| 久久久精品tv| 亚洲精品中文字| 午夜日韩在线观看| 欧美国产亚洲精品久久久8v| 国产精品萝li| 亚洲国产精品一区制服丝袜 | 国产免费成人av| 亚洲欧洲精品一区二区三区 | 99在线热播精品免费99热| 午夜久久黄色| 亚洲国产精品ⅴa在线观看| 亚洲一二三四久久| 欧美激情亚洲一区| 国产一区二三区| 亚洲一区美女视频在线观看免费| 久久人人爽人人爽爽久久| 夜夜爽夜夜爽精品视频|