锘??xml version="1.0" encoding="utf-8" standalone="yes"?>97久久精品人人澡人人爽,伊人久久大香线蕉综合网站,亚洲国产精品无码久久久不卡http://m.shnenglu.com/JohnsonLu/category/12051.htmlzh-cnWed, 14 Oct 2009 14:30:01 GMTWed, 14 Oct 2009 14:30:01 GMT60- 灝忓績鍒犻櫎瀹瑰櫒涓厓绱犳椂鐨勮凱浠e櫒澶辨晥http://m.shnenglu.com/JohnsonLu/archive/2009/10/14/98590.htmlJohnsonJohnsonWed, 14 Oct 2009 11:47:00 GMThttp://m.shnenglu.com/JohnsonLu/archive/2009/10/14/98590.htmlhttp://m.shnenglu.com/JohnsonLu/comments/98590.htmlhttp://m.shnenglu.com/JohnsonLu/archive/2009/10/14/98590.html#Feedback0http://m.shnenglu.com/JohnsonLu/comments/commentRss/98590.htmlhttp://m.shnenglu.com/JohnsonLu/services/trackbacks/98590.html
浠庝竴涓畝鍗曠殑闂寮濮嬶紝鍒犻櫎鏁扮粍涓煇涓厓绱犲悗榪炵畫閲嶅鐨勫厓绱狅紝渚嬪 1錛?錛?錛?錛?錛?錛?錛?錛?錛? ---> 1錛?2錛?錛?錛?錛?銆?br>
鑰冭檻浜嗗嚑縐掞紝鐒跺悗灝卞紑濮嬪姩鎵嬪啓浠g爜浜嗭細
#include <iostream>
#include <vector>
using namespace std;

int main(int argc, char* argv[])


{

int a[] =
{1, 1, 3, 3, 3, 2, 4, 1, 1, 1, 0};
int size = sizeof(a)/sizeof(a[0]);

vector<int> vec(a, a+size);

vector<int>::iterator iter, end;
int previous = vec[0];
for (iter = vec.begin() + 1, end = vec.end(); iter != end; ++iter)

{
if(*iter == previous)

{
vec.erase(iter);
}
else

{
previous = *iter;
}
}

for(iter = vec.begin(); iter != vec.end(); ++iter)

{
cout << *iter << endl;
}
return 0;
}


鍙槸緙栬瘧涓涓嬶紝鍑烘潵涓澶у爢error錛屼粩緇嗙湅涓涓嬪嚭閿欎俊鎭紝鍝︼紝鍘熸潵鑷繁蹇樿浜嗭紝erase瀹瑰櫒涓厓绱犵殑鏃跺欙紝榪唬鍣ㄤ細澶辨晥銆傘傘傞】鏃朵竴韜喎姹楋紝鑷繁騫蟲椂榪唬瀹瑰櫒鐨勬椂鍊欙紝涓鑸兘淇濆瓨浜嗗鍣ㄧ殑end鍏冪礌錛岃鏄鏃惰凱浠e櫒澶辨晥銆傘傘?/p>
Container<int>::iterator iter, end;
for (iter = container.begin() + 1, end = container.end(); iter != end; ++iter)
浜庢槸鎵懼埌鏀惰棌鐨凟ffective STL錛岀炕寮鏉℃9錛屾壘鍒頒簡erase瀹瑰櫒涓厓绱犵殑鍘熷垯銆備互鍓嶆浘緇忕湅榪囷紝涓嶈繃騫存繁鏃ヤ箙錛屾棭灝卞繕寰椾竴騫蹭簩鍑浜嗐傜幇鍦ㄨ繕鏄妸瑕佺偣鎬葷粨涓涓嬶紝璁板湪blog涓婏紝渚涗互鍚庡弬鑰冦?br>
1. 瀵逛簬鍏寵仈瀹瑰櫒(濡俶ap, set, multimap,multiset)錛屽垹闄ゅ綋鍓嶇殑iterator錛屼粎浠呬細浣垮綋鍓嶇殑iterator澶辨晥錛屽彧瑕佸湪erase鏃訛紝閫掑褰撳墠iterator鍗沖彲銆傝繖鏄洜涓簃ap涔嬬被鐨勫鍣紝浣跨敤浜嗙孩榛戞爲鏉ュ疄鐜幫紝鎻掑叆銆佸垹闄や竴涓粨鐐逛笉浼氬鍏朵粬緇撶偣閫犳垚褰卞搷銆?br>
for (iter = cont.begin(); it != cont.end();)


{
(*iter)->doSomething();
if (shouldDelete(*iter))
cont.erase(iter++);
else
++iter;
}
鍥犱負iter浼犵粰erase鏂規硶鐨勬槸涓涓壇鏈紝iter++浼氭寚鍚戜笅涓涓厓绱犮?br>
2. 瀵逛簬搴忓垪寮忓鍣?濡倂ector,deque)錛屽垹闄ゅ綋鍓嶇殑iterator浼氫嬌鍚庨潰鎵鏈夊厓绱犵殑iterator閮藉け鏁堛傝繖鏄洜涓簐etor,deque浣跨敤浜嗚繛緇垎閰嶇殑鍐呭瓨錛屽垹闄や竴涓厓绱犲鑷村悗闈㈡墍鏈夌殑鍏冪礌浼氬悜鍓嶇Щ鍔ㄤ竴涓綅緗傝繕濂絜rase鏂規硶鍙互榪斿洖涓嬩竴涓湁鏁堢殑iterator銆?br>
for (iter = cont.begin(); iter != cont.end();)


{
(*it)->doSomething();
if (shouldDelete(*iter))
iter = cont.erase(iter);
else
++iter;
}
3. 瀵逛簬list鏉ヨ錛屽畠浣跨敤浜嗕笉榪炵畫鍒嗛厤鐨勫唴瀛橈紝騫朵笖瀹冪殑erase鏂規硶涔熶細榪斿洖涓嬩竴涓湁鏁堢殑iterator錛屽洜姝や笂闈袱縐嶆柟娉曢兘鍙互浣跨敤銆?br>
鏈鍚庣粰鍑哄紑濮嬮偅涓棶棰樼殑涓涓紜殑瀹炵幇錛?/p>
#include <iostream>
#include <vector>
using namespace std;

int main(int argc, char* argv[])


{

int a[] =
{1, 1, 3, 3, 3, 2, 4, 1, 1, 1, 0};
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. 涓嶈繃瀹為檯涓婅繖涓棶棰橈紝鐢╲ector鏉ュ疄鐜頒笉鏄緢閫傚悎錛屽洜涓烘瘡嬈″垹闄や竴涓厓绱狅紝閮戒細寮曡搗vector鐨勪竴涓猺esize鎿嶄綔銆俽esize鐨勬椂闂村鏉傚害鏄疧(n)錛屾暣涓殑resize鎿嶄綔瑕佽姳璐筄(n^2)銆傛渶濂芥槸閫夋嫨list鏈涓哄鍣紝list鏈閫傚悎閭d簺闇瑕佸湪瀹瑰櫒涓棿鍋氭彃鍏ャ佸垹闄ょ殑渚嬪瓙銆?br>
PS2. 鍙﹀涓涓彲鑳界殑鏂規硶鏄痳emove_if + erase鎯敤娉曘俽emove_if鐨勬椂闂村鏉傚害鏄疧(n). erase鐨勬椂闂村鏉傚害涔熸槸O(n)錛屾墍浠ユ暣涓搷浣滃彲浠ュ湪O(n)鏃墮棿閲屽畬鎴愩?褰撶劧錛屽浜庤繖涓緥瀛愶紝ShouldDeletePred姣旇緝闅懼啓)
iterator new_end = remove_if(array.begin(), array.end(), ShouldDeletePred());
array.erase(new_end, array.end());

]]>
久久久久国产精品三级网|
久久精品这里只有精99品|
久久天天躁狠狠躁夜夜avapp|
久久久久免费看成人影片|
亚洲狠狠综合久久|
中文字幕乱码人妻无码久久|
国产精品天天影视久久综合网|
久久精品成人|
99久久精品这里只有精品|
亚洲色欲久久久综合网|
精品视频久久久久|
久久国产精品99国产精|
亚洲а∨天堂久久精品|
国产69精品久久久久99|
91精品观看91久久久久久|
久久精品蜜芽亚洲国产AV|
国内精品久久久久伊人av|
精品久久久久久亚洲精品
|
久久伊人五月丁香狠狠色|
国产精品天天影视久久综合网|
色欲久久久天天天综合网
|
天天久久狠狠色综合|
久久精品国产亚洲5555|
伊人伊成久久人综合网777|
久久伊人五月丁香狠狠色|
97久久精品国产精品青草|
欧美一区二区精品久久|
久久久国产精品|
97久久超碰成人精品网站|
狠狠综合久久综合中文88|
国产精品久久久久久久久免费|
天天爽天天狠久久久综合麻豆|
久久国产精品免费一区二区三区|
久久精品国产只有精品66|
久久无码AV一区二区三区|
日日狠狠久久偷偷色综合96蜜桃|
国产综合成人久久大片91|
99久久精品影院老鸭窝|
狠狠88综合久久久久综合网|
无码久久精品国产亚洲Av影片|
久久久久久亚洲Av无码精品专口|