成都游戲Coder,記錄游戲開(kāi)發(fā)過(guò)程的筆記和心得!
posted on 2008-10-20 20:35 expter 閱讀(1310) 評(píng)論(4) 編輯 收藏 引用
因?yàn)槌绦? 在用戶刪除一個(gè)節(jié)點(diǎn)后,被刪除的節(jié)點(diǎn)后面的就成為了單獨(dú)的鏈表 回復(fù) 更多評(píng)論
因?yàn)閑rase方法是返回的刪除的節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)的地址... ------------------------------------------------ 再it++會(huì)漏掉節(jié)點(diǎn)的~ 這個(gè)題目里面沒(méi)問(wèn)題~ 回復(fù) 更多評(píng)論
你上面的程序好像有點(diǎn)問(wèn)題呀,應(yīng)該是這樣的吧 # include <iostream> # include <list> using namespace std; int main() { int i; list<int> list1; for(i = 0; i < 8; i++) list1.push_back(i); for(list<int>::iterator it= list1.begin(); it != list1.end(); ) { if (*it %2 ) it=list1.erase(it); else it++; } for(list<int>::iterator it= list1.begin(); it != list1.end(); it++) cout<<*it<<endl; return 0; } 回復(fù) 更多評(píng)論
#include<iostream> #include<vector> using namespace std; void main() { int n[]={1,2,3,4,5,6,7,8,9,0}; vector<int>v(n,n+sizeof(n)/4); vector<int>::iterator i; for(i=v.begin();i!=v.end();++i) cout<<*i<<" "; cout<<endl; for(i=v.begin();i!=v.end();) { if(*i%2==0) i=v.erase(i);//erase返回被刪除的節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)的地址 else ++i; } for(i=v.begin();i!=v.end();++i) cout<<*i<<" "; cout<<endl; } /*--運(yùn)行結(jié)果: 1 2 3 4 5 6 7 8 9 0 1 3 5 7 9 Press any key to continue --*/ 回復(fù) 更多評(píng)論
Powered by: C++博客 Copyright © expter