锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久青青草视频,国产精品免费看久久久香蕉,久久人人添人人爽添人人片牛牛http://www.shnenglu.com/amazon/category/8955.htmlzh-cnFri, 28 May 2010 02:26:01 GMTFri, 28 May 2010 02:26:01 GMT60STL涔嬪叧鑱斿鍣?/title><link>http://www.shnenglu.com/amazon/archive/2009/10/19/98927.html</link><dc:creator>榪滈</dc:creator><author>榪滈</author><pubDate>Mon, 19 Oct 2009 04:00:00 GMT</pubDate><guid>http://www.shnenglu.com/amazon/archive/2009/10/19/98927.html</guid><wfw:comment>http://www.shnenglu.com/amazon/comments/98927.html</wfw:comment><comments>http://www.shnenglu.com/amazon/archive/2009/10/19/98927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/amazon/comments/commentRss/98927.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/amazon/services/trackbacks/98927.html</trackback:ping><description><![CDATA[<p>鍏寵仈瀹瑰櫒涓昏鍖呮嫭pair銆乵ap銆乻et銆乵ulitmap銆乵ultiset銆?br>娉ㄦ剰錛?br>1.涓庨『搴忓鍣ㄧ浉姣旓紝鍏寵仈瀹瑰櫒涓嶆彁渚沠ront銆乥ack銆乸ush_front()銆乸ush_back()銆乸op_back()銆乸op_front()絳夋搷浣滐紱涓斿叧鑱斿鍣ㄤ腑鐨勯敭綾誨瀷浣滀負key錛屽繀欏誨畾涔?<"鎿嶄綔絎︼紝浠庤屽彲浠ユ嬁鏉ユ瘮杈冿紝瀵瑰叾浠栨瘮杈冭繍綆椾笉浣滆姹傘?br>2.鍏寵仈瀹瑰櫒涓嶈兘閫氳繃瀹瑰櫒澶у皬鏉ュ畾涔夛紝鍥犱負涓嶇煡閬撻敭鍊兼槸澶氬皯銆?br>3.鎻愪緵鍏崇郴榪愮畻銆?br>4.鎻愪緵begin銆乪nd銆乺begin銆乺end絳夋搷浣溿?br>5.鎻愪緵綾誨瀷鍒悕錛屼絾鏄痸alue_type涓嶅悓銆?br>6.鎻愪緵swap鍜岃祴鍊兼搷浣滐紝浣嗕笉鎻愪緵assign鎿嶄綔銆?br>7.鎻愪緵clear鍜宔rase鎿嶄綔錛屼絾鍙繑鍥瀡oid綾誨瀷鑰屼笉鏄笅涓鍏冪礌榪唬鍣ㄣ?br>8.鎻愪緵瀹瑰櫒澶у皬鎿嶄綔錛屼絾娌℃湁resize鎿嶄綔銆?br><br><strong>1.pair綾誨瀷<br></strong>#include <utility><br>pair<T1, T2>  p;<br>pair<T1, T2>  p(v1, v2);<br>pair<T1, T2>  p = make_pair(v1, v2);<br>p1 == p2<br>p1 < p2       //鎸夌収瀛楀吀搴忥紝鍏堟瘮杈僾1錛屽啀姣旇緝v2<br>p.first<br>p.second<br><br><strong>2.map綾誨瀷</strong><br>C<T1, T2>  c;<br>C<T1, T2>  c1(c2);      //c1鍜宑2蹇呴』鏈夌浉鍚岀殑閿被鍨嬪拰鍊肩被鍨?br>C<T1, T2>  c(b, e);     //鍙姹傚吋瀹?br><br>C<T1, T2>::size_type<br>C<T1, T2>::iterator<br>C<T1, T2>::const_iterator<br>C<T1, T2>::reverse_iterator<br>C<T1, T2>::const_reverse_iterator<br>C<T1, T2>::value_type     //pair綾誨瀷錛宖irst鍏冪礌鏄痗onst C<T1, T2>::key_type綾誨瀷錛宻econd鍏冪礌鏄疌<T1, T2>::mapped_type綾誨瀷<br>C<T1, T2>::key_type<br>C<T1, T2>::mapped_type</p> <p>C<T1, T2>::iterator  c.begin();<br>C<T1, T2>:::iterator  c.end();<br>C<T1, T2>::iterator  c.rbegin();<br>C<T1, T2>::iterator  c.rend();<br><br>m[key]                       //鐢ㄤ笅鏍囪闂笉瀛樺湪鐨勫厓绱犱細娣誨姞鏂扮殑鍏冪礌(key, 鍒濆鍖栧?<br>m[key] = value;          //鐢ㄤ笅鏍囦慨鏀逛笉瀛樺湪鐨勫厓绱犱細娣誨姞鏂扮殑鍏冪礌(key, value)<br>int  m.count(key);       //key鍑虹幇鐨勬鏁幫紝0鎴栬?<br>iterator  m.find(key);  //榪斿洖瀵瑰簲鐨勮凱浠e櫒鎴栬呰秴鍑烘湯绔凱浠e櫒錛屼笉浼氬[]涓鏍鋒坊鍔?br><br>pair<iterator, bool>  m.insert(e);           //e.first涓嶅瓨鍦紝鍒欐彃鍏.second錛宔.fist瀛樺湪錛屽垯涓嶅彉<br>void  m.insert(b, e);<br>C<T1, T2>::iterator  m.insert(iter, e);   //iter浣滀負璧風偣鎼滅儲錛岃繑鍥炴寚鍚慹鐨勮凱浠e櫒<br><br>c1 = c2;<br>void  c1.swap(c2);<br>C<T1, T2>::size_type  c.size();<br>bool  c.empty();<br><br>void  c.clear();<br>C<T1, T2>::size_type  m.erase(key);    //榪斿洖鍒犻櫎鐨勪釜鏁?br>void  m.erase(p);<br>void  m.erae(b, e);<br><br><br><strong>3.set綾誨瀷</strong><br>set瀹瑰櫒鏀寔澶ч儴鍒嗙殑map鎿嶄綔錛屽寘鎷笅闈㈠嚑縐嶏細<br>A.鍏寵仈瀹瑰櫒閫氱敤鎿嶄綔銆?br>B.map鐨勬瀯閫犲嚱鏁般?br>C.map鐨刬nsert鎿嶄綔銆?br>D.map鐨刢ount鍜宖ind鎿嶄綔銆?br>E.map鐨別rase鎿嶄綔銆?br>F.涓嶆敮鎸佷笅鏍囨搷浣滅銆?br>G.涓嶆敮鎸乵apped_type綾誨瀷錛屽叾value_type涓嶆槸pair綾誨瀷錛岃屾槸涓巏ey_type鐩稿悓鐨勭被鍨嬶紝涓旈敭鍊煎繀欏誨敮涓銆?br><br><br><strong>4.multimap鍜宮ultiset綾誨瀷</strong><br>multimap鍜宮ultiset鎵鏀寔鐨勬搷浣滃垎鍒笌map鍜宻et鎿嶄綔鐩稿悓錛屽彧鏈変竴涓緥澶栵紝灝辨槸multimap涓嶆敮鎸佷笅鏍囪繍綆楋紝鍥犱負鍏舵煇涓敭鍊煎搴斿涓鹼紱涓斿嵆浣挎槸鐩稿悓鐨勬搷浣滐紝涔熷仛浜嗕竴瀹氱殑淇敼銆?br><br>inert鍜宔rase錛?br>姣忔璋冪敤insert蹇呯劧浼氭坊鍔犱竴涓厓绱狅紝鍥犱負閿間笉鏄敮涓鐨勩?br>甯︽湁涓涓敭鍊肩殑erase鐗堟湰灝嗗垹闄よ閿殑鎵鏈夊厓绱狅紝騫惰繑鍥炲垹闄や釜鏁幫紱甯︽湁涓涓垨涓瀵硅凱浠e櫒鐨勭増鏈彧鍒犻櫎鎸囧畾鐨勫厓绱狅紝騫惰繑鍥瀡oid綾誨瀷銆?br><br>find鍜宑ount錛?br>map鍜宻et鏄『搴忓瓨鍌ㄧ殑錛宮ultimap鍜宮ultiset涔熶竴鏍鳳紝涓斿鏋滄煇涓敭瀵瑰簲澶氫釜瀹炰緥錛岃繖浜涘疄渚嬪湪瀹瑰櫒涓浉閭誨瓨鏀俱?br>count榪斿洖鏌愰敭瀵瑰簲鍏冪礌鍑虹幇鐨勬鏁幫紝鑰宖ind鎿嶄綔榪斿洖鏌愰敭鍊肩殑絎竴涓疄渚嬫垨鑰卐nd()銆?br><br>lower_bound鍜寀pper_bound錛?br>iterator  lower_bound(key)        //榪斿洖鎸囧悜閿間笉灝忎簬key鐨勭涓涓厓绱犵殑榪唬鍣?br>iterator upper_bound(key)         //榪斿洖澶т簬key鐨勭涓涓厓绱犵殑榪唬鍣?br>pair<iterator, iterator>  equal_range(key)   //榪斿洖pair綾誨瀷錛宖irst鎴愬憳絳変環浜巐ower_bound(key)錛宻econd鎴愬憳絳変環浜巙pper_bound(key)  <br>娉ㄦ剰錛?span style="COLOR: red">lower_bound榪斿洖鐨勮凱浠e櫒涓嶄竴瀹氭寚鍚戞嫢鏈夌壒瀹氶敭鍊肩殑鍏冪礌錛屽鏋滆閿間笉瀛樺湪錛屽垯lower_bound榪斿洖璇ラ敭鍊煎簲璇ヨ鎻掑叆鐨勭涓涓綅緗傝繖涓や釜閿笉浼氳鏄庨敭鍊兼槸鍚﹀瓨鍦紝鍙槸緇欏嚭浜嗘煇涓鍖哄煙銆?br></span></p> <img src ="http://www.shnenglu.com/amazon/aggbug/98927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/amazon/" target="_blank">榪滈</a> 2009-10-19 12:00 <a href="http://www.shnenglu.com/amazon/archive/2009/10/19/98927.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>STL涔嬮『搴忓鍣ㄧ敤娉曟葷粨http://www.shnenglu.com/amazon/archive/2009/10/18/98897.html榪滈榪滈Sun, 18 Oct 2009 13:14:00 GMThttp://www.shnenglu.com/amazon/archive/2009/10/18/98897.htmlhttp://www.shnenglu.com/amazon/comments/98897.htmlhttp://www.shnenglu.com/amazon/archive/2009/10/18/98897.html#Feedback0http://www.shnenglu.com/amazon/comments/commentRss/98897.htmlhttp://www.shnenglu.com/amazon/services/trackbacks/98897.html
1.瀹瑰櫒鍒涘緩
C<T>  c;               //鍒涘緩絀哄鍣紝閫傜敤浜庢墍鏈夊鍣?br>C<T>  c(c2);         //鍒涘緩c2鐨勫壇鏈紝c鍜宑2蹇呴』鏄悓綾誨瀷瀹瑰櫒鍜屽厓绱狅紝閫傜敤鎵鏈夊鍣?br>C<T>  c(b, e);       //瀹瑰櫒綾誨瀷鍜屽厓绱犵被鍨嬪彲鍏煎鍗沖彲錛?span style="COLOR: red">浣嗘槸鏍規嵁瀹為獙錛岃矊浼間笉琛?/span>
C<T>  c(n, t);        //n涓猼鍊煎厓绱狅紝t蹇呴』鏄疶綾誨瀷鎴栧彲杞負T綾誨瀷錛岄傜敤浜庨『搴忓鍣?br>C<T>  c(n);           //n涓嬌鐢ㄥ垵濮嬪寲鍊肩殑鍏冪礌錛岄傜敤浜庨『搴忓鍣紝涓鑸槸0

2.榪唬鍣ㄦ搷浣?/strong>
*iter
iter->mem
++iter
iter++
--iter
iter--
iter1 == iter2
iter1 != iter2
--------------------------
iter + n                   //鍙湁vector鍜宒eque鏀寔綆楁湳榪愮畻鍜屽叧緋昏繍綆楋紝list涓嶆敮鎸?br>iter – n
iter1 += iter2
iter1 -= iter2
iter1 – iter2
iter1 > iter2
iter1 < iter2
iter1 <= iter2
iter1 >= iter2

3.鍐呯疆綾誨瀷
C<T>::size_type
C<T>::iterator
C<T>::const_iterator                //娉ㄦ剰涓巆onst C<T>::iterator涓嶅悓
C<T>::reverse_iterator
C<T>::const_reverse_iterator
C<T>::value_type
C<T>::reference                     //宸﹀肩被鍨嬶紝鍗硋alue_type&
C<T>::const_reference           //const value_type&

4.鍩烘湰鎿嶄綔
void  c.push_back(t);
void  c.push_front(t);        //鍙傜敤list銆乨eque

void  c.insert(p, n ,t);
void  c.insert(p, b, e);
C<T>::iterator  c.insert(p, t);

C<T>::size_type  c.size();
C<T>::size_type  c.max_size();   //鏈澶氬彲瀹圭撼鐨勫厓绱狅紝涓庣被鍨嬫湁鍏籌紝鎬誨瓨鍌ㄧ┖闂村浐瀹?br>bool  c.empyt();
void  c.resize(n);
void  c.resize(n, t);                   //閲嶈皟c鐨勫ぇ灝忥紝鏂版坊鍔犵殑鍏冪礌鍊間嬌鐢╰鍊?br>
c[n]                                        //鍙傜敤浜巚ector銆乨eque瀹瑰櫒
C<T>::value_type  c.at(n);      //鍙傜敤浜巚ector銆乨eque瀹瑰櫒錛?span style="COLOR: red">闃叉瓚婄晫

C<T>::iterator  c.erase(p);
C<T>::iterator  e.erase(b, e);
void  c.clear();
void  c.pop_back();
void  c.pop_front();               //鍙傜敤浜巐ist銆乨eque瀹瑰櫒

c1 = c2                          //閲嶈錛岃姹俢1鍜宑2綾誨瀷鐩稿悓錛屽厓绱犵被鍨嬬浉鍚?br>void  c1.assign(b, e);      //閲嶈錛宐銆乪涓嶈兘鏄痗1涓殑榪唬鍣紝綾誨瀷鍏煎鍗沖彲
void  c1.assign(n, t);       //閲嶈
void  c1.swap(c2);        //c1鍜宑2綾誨瀷蹇呴』鐩稿悓錛屼笖榪唬鍣ㄤ笉澶辨晥


瀹瑰櫒閫傞厤鍣ㄥ寘鎷琿ueue銆乸riority_queue銆乻tack銆?br>stack榛樿鍩轟簬deque瀹瑰櫒瀹炵幇錛屼篃鍙互寤虹珛鍦╲ector銆乴ist鍜宒eque涓婏紱
queue榛樿鍩轟簬deque瀹瑰櫒瀹炵幇錛屼篃鍙互寤虹珛鍦╨ist鍜宒eque涓婏紱
priority_queue榛樿鍩轟簬vector涓婏紝涔熷彲浠ュ緩绔嬪湪vector鍜宒eque涓娿?br>stack<string, vector<string> >  a;
stack<string, vector<string> >  a(c);

1.鍐呯疆綾誨瀷
C<T>::size_type
C<T>::value_type
C<T>::container_type

2.stack鐨勬搷浣?/strong>
bool  s.empty();
C<T>::size_type  s.size();
void s.pop();                   //鍒犻櫎涓嶈繑鍥?br>C<T>::value_type  s.top();      //榪斿洖浣嗕笉鍒犻櫎
void s.push(value);

3.queue鍜宲riority_queue鐨勬搷浣?br>void  q.empty();
C<T>::size_type  q.size();
void  q.pop();                         //鍒犻櫎闃熼錛屼笉榪斿洖
C<T>::value_type  q.front();   //榪斿洖闃熼錛屼笉鍒犻櫎錛屽彧閫傜敤浜巕ueue
C<T>::value_type  q.back();   //榪斿洖闃熷熬錛屼笉鍒犻櫎錛屽彧閫傜敤浜巕ueue
C<T>::value_type  q.top();    //榪斿洖鏈楂樹紭鍏堢駭鐨勫厓绱狅紝涓嶅垹闄わ紝鍙傜敤浜巔riority_type
void  q.push(value);               //瀵筿ueue鏄湪闃熷熬鍘嬪叆錛屽priority_queue鏄傚綋浣嶇疆鎻掑叆




榪滈 2009-10-18 21:14 鍙戣〃璇勮
]]>
STL涔嬭凱浠e櫒鍩烘湰姒傚康http://www.shnenglu.com/amazon/archive/2009/10/12/94360.html榪滈榪滈Mon, 12 Oct 2009 00:31:00 GMThttp://www.shnenglu.com/amazon/archive/2009/10/12/94360.htmlhttp://www.shnenglu.com/amazon/comments/94360.htmlhttp://www.shnenglu.com/amazon/archive/2009/10/12/94360.html#Feedback0http://www.shnenglu.com/amazon/comments/commentRss/94360.htmlhttp://www.shnenglu.com/amazon/services/trackbacks/94360.htmlSTL鏄疌++涓噸瑕侀儴鍒嗕箣涓錛堥潰鍚戝璞°丼TL銆佹ā鏉跨瓑錛夛紝鍏朵腑涓変釜鍩烘湰鐨凷TL緇勪歡鍖呮嫭錛?br>1. 榪唬鍣ㄣ傝凱浠e櫒涔嬩簬瀹瑰櫒鐩稿綋浜庢寚閽堜箣浜庢暟緇勶紝鎻愪緵浜嗚闂鍣ㄥ璞$殑鏂規硶錛屼簨瀹炰笂C++涓殑鎸囬拡涔熸槸涓縐嶈凱浠e櫒錛屼絾鏄娉ㄦ剰榪唬鍣ㄤ笉浠呬粎鏄寚閽堬紝涓嶄竴瀹氬叿鏈夊湴鍧鍊箋?br>2. 瀹瑰櫒銆傚鍣ㄦ槸涓縐嶆ā鏉跨被錛屼緥濡俵ist銆乿ector銆乨eque絳夛紝涓鑸敱榪唬鍣ㄨ闂鍣ㄤ腑鐨勬暟鎹?br>3. 綆楁硶銆係TL涓暟鎹粨鏋勫拰綆楁硶鏄垎紱葷殑錛屽悇縐嶅嚱鏁板湪騫夸箟瀹瑰櫒涓紙鍖呮嫭閾捐〃銆佹暟緇勩乻tring瀵硅薄銆佸鍣級瀹屽叏閫氱敤錛屽彧瑕佹敮鎸佺浉搴旂殑榪唬鍣ㄥ嵆鍙?br>
1.澶存枃浠訛細
STL澶存枃浠朵竴鑸笉浣跨敤.h鎵╁睍錛屽叾涓富瑕佷嬌鐢ㄧ殑澶存枃浠跺拰瀵瑰簲瀹瑰櫒綾誨涓嬶細
#include Container Class
<deque>  deque
<list>  list
<map>  map, multimap
<queue>  queue, priority_queue
<set>  set, multiset
<stack>  stack
<vector>  vector
<string>  string
<iterator>  ***<***>::iterator
<algorithm>  鍚勭綆楁硶鍑芥暟
STL鍧囦嬌鐢ㄦ爣鍑嗗懡鍚嶇┖闂磚sing namespace std銆?br>
2.榪唬鍣細
榪唬鍣ㄦ湁浜旂綾誨瀷錛岃繖浜旂綾誨瀷鏄竴縐嶇戶鎵垮叧緋伙紝鍏蜂綋濡備笅錛?br>Input iterators錛氭彁渚涘鏁版嵁鐨勫彧璇昏闂紝鍓嶅悜鎺ㄨ繘銆傝緭鍏ヨ凱浠e櫒鍙互浣跨敤==鍜?=鏉ユ祴璇曟槸鍚︾浉絳夛紱浣跨敤*鏉ヨ闂暟鎹紱浣跨敤++鎿嶄綔絎﹀墠鍚戞帹榪涖備緥濡俧ind鍑芥暟闇瑕佷繚璇佽緭鍏ヨ凱浠e櫒銆?br>Output iterators錛氭彁渚涘鏁版嵁鐨勫彧鍐欒闂紝鍓嶅悜鎺ㄨ繘銆傝緭鍑鴻凱浠e櫒緙虹渷鍙啓錛岀敱浜庤榪唬鍣ㄦ棤娉曡鍙栧璞★紝鍥犳涓嶄細鍦ㄤ換浣曟悳绱㈠拰鍏朵粬綆楁硶涓嬌鐢ㄥ畠銆?br>Forward iterators錛氭彁渚涜鍐欒闂紝鍓嶅悜鎺ㄨ繘銆備緥濡俽eplace鍑芥暟闇瑕佷繚璇佸墠鍚戣凱浠e櫒銆?br>Bidirectional iterators錛氭彁渚涜鍐欒闂紝鍓嶅悜鎴栧悗鍚戞帹榪涖備緥濡俽everse鍑芥暟闇瑕佷繚璇佸弻鍚戣凱浠e櫒銆?br>Random access iterators錛氭彁渚涜鍐欒闂紝闅忔満縐誨姩錛堥潪const鐨勬寚閽堜篃鏄殢鏈鴻凱浠e櫒錛夈係TL涓殑鎺掑簭鍜屾悳绱㈠嚱鏁頒嬌鐢ㄩ殢鏈鴻闂凱浠e櫒錛岄殢鏈鴻闂凱浠e櫒鍙互浣跨敤鍏崇郴鎿嶄綔絎﹀仛姣旇緝銆?br>闄ゆ涔嬪錛岃繕鍖呮嫭涓浜涚壒孌婄殑榪唬鍣細
鎸囬拡榪唬鍣細涓涓寚閽堜篃鏄竴縐嶈凱浠e櫒銆?br>甯擱噺榪唬鍣細瀵逛簬鍙鍙橀噺錛屼負浜嗛槻姝㈤敊璇祴鍊鹼紝鍙互浣跨敤甯擱噺榪唬鍣╟onst_iterator錛岃榪唬鍣ㄦ寚鍚戠殑瀵硅薄涓嶅厑璁告敼鍙樸傛敞鎰忥細const ***<***>::iterator鐨勫惈涔夋槸璇ヨ凱浠e櫒鎴愪負甯擱噺錛屼笉鍙寚鍚戝叾浠栨暟鎹紝涓庡父閲忚凱浠e櫒鐨勫惈涔夋槸涓嶄竴鏍風殑銆?br>
3.嫻佽凱浠e櫒
灝嗚緭鍏ヨ緭鍑猴紙渚嬪鏍囧噯杈撳叆杈撳嚭嫻乧in/cout鎴栬呮枃浠舵祦絳夛級浣滀負瀹瑰櫒鐪嬪緟錛屽洜姝ゆ帴鍙楄凱浠e櫒鍙傛暟鐨勭畻娉曢兘鍙互鍜屾祦涓璧峰伐浣溿?br>STL瀹氫箟妯℃澘綾籵stream_iterator浣滀負杈撳嚭嫻佽凱浠e櫒錛屽叾鏋勯犲嚱鏁版湁涓や釜鍙傛暟錛屽寘鎷竴涓猳stream瀵硅薄鍜屼竴涓猻tring鍊鹼紙浣滀負闂撮殧絎︼級錛屽洜姝ゅ彲浠ヨ薄涓嬮潰涓鏍峰垱寤轟竴涓凱浠e櫒錛?br>ostream_iterator<int> out(cout, “\t”)             //瀹氫箟cout榪唬鍣紝鍙互鍜屼換浣曚竴涓帴鍙楄緭鍑鴻凱浠e櫒鐨勫嚱鏁頒竴璧蜂嬌鐢紝濡俢opy
copy(....., ......, out);
ofstream out(“text.txt”);
ostream_iterator<string> obegin(out, “\n”);       //瀹氫箟鏂囦歡嫻佽緭鍑鴻凱浠e櫒
----------------------------------------
STL瀹氫箟妯℃澘綾籭stream_iterator浣滀負杈撳叆嫻佽凱浠e櫒錛屽彲鎸囧畾璇誨彇鐨勬潵婧愶紝騫跺簲璇ュ拰緇撴潫榪唬鍣ㄦ瘮杈冦傚叿浣撳涓嬶細
istream_iterator<int> intreader(cin);       //瀹氫箟cin嫻佽凱浠e櫒錛岃緭鍑虹粨鏉熺敤ctrl+Z+鍥炶濺
isteam_iterator<int> eof;   //絀虹殑嫻佽凱浠e櫒琛ㄧず緇撴潫
copy(istream_iterator<string>(cin), istream_iterator<string>(), 杈撳嚭榪唬鍣?;      //瀹氫箟鏃犲彉閲忓悕鐨刢in嫻佽凱浠e櫒
ifstream in(“text.txt”);
istream_iterator<string> ibegin(in);
istream_iterator<string> iend;            //瀹氫箟鏂囦歡嫻佽緭鍏ヨ凱浠e櫒
榪樻湁涓浜涘叿浣撳簲鐢ㄥ涓嬶細

//鍒╃敤嫻佽凱浠e櫒濉厖vector
{
    ifstream 
in("test.txt");
    istream_iterator
<string> ibegin(in);
    istream_iterator
<string> iend;
    vector
<string> vec(ibegin, iend);      //璨屼技浼氭湁闂錛岀被鍨嬩笉鍖歸厤
    copy(vec.begin(), vec.end(), ostream_iterator<string>(cout, "\n"));
}

//鍒╃敤杈撳叆嫻佸~鍏卾ector
{
    vector
<string> vec;
    copy(istream_iterator
<string>(cin), istream_iterator<string>(), back_inserter(vec));
    sort(vec.begin(), vec.end());
    copy(vec.begin(), vec.end(), ostream_iterator
<string>(cout,"\n"));
}

//鍒╃敤嫻佽凱浠e櫒淇濆瓨vector鍐呭鍒版枃浠?/span>
{
    ifstream 
in("test.txt");
    istream_iterator
<string> ibegin(in);
    istream_iterator
<string> iend;
    vector
<string> vec(ibegin, iend);
    ofstream 
out("testcopy.txt");
    copy(vec.begin(), vec.end(), ostream_iterator
<string>(out"\n"));    
}

娉ㄦ剰錛氫笂闈㈢敤杈撳叆嫻佽凱浠e櫒鏉ュ垵濮嬪寲vector鍚庯紝涓嶅彲鍐嶇敤榪欎釜杈撳叆嫻佽凱浠e櫒錛屽洜涓洪殢鐫鏁版嵁鐨勮鍙栵紝榪唬鍣ㄥ凡緇忓埌杈捐緭鍏ユ祦鎴栬呮枃浠舵祦鐨勬湯灝句簡銆?/span>

4.鎻掑叆榪唬鍣細
int arr[] = {1, 2, 3, 4, 5};
vector<int> vi;
copy(arr, arr + 5; vi.begin());
璇ヨ鍙ヤ笉浼氭墽琛岋紝鍥犱負娌℃湁涓簐i鍒嗛厤瀛樺偍絀洪棿銆傛鏃朵嬌鐢ㄦ彃鍏ヨ凱浠e櫒鍙互灝嗗兼彃鍏ュ埌瀹瑰櫒涓紝鑷姩涓簐i鎵╁睍瀛樺偍絀洪棿錛屼富瑕佸寘鎷笁縐嶆彃鍏ヨ凱浠e櫒銆?br>鏅氭彃鍏ュ櫒錛氬皢瀵硅薄鎻掑叆鍒板鍣ㄤ換浣曞璞$殑鍓嶉潰銆傝榪唬鍣ㄤ嬌鐢ㄥ鍣ㄧ殑insert鎿嶄綔絎︽浛浠h祴鍊艱繍綆楃錛岀涓涓弬鏁版槸瀹瑰櫒鏈韓錛岀浜屼釜鍙傛暟鏄鍣ㄨ凱浠e櫒鎸囧畾鎻掑叆浣嶇疆銆?br>Front inserters錛氬皢瀵硅薄鎻掑叆鍒版暟鎹泦鐨勫墠闈紝渚嬪閾捐〃琛ㄥご銆傝榪唬鍣ㄤ嬌鐢╬ush_front鎿嶄綔鏇夸唬璧嬪艱繍綆楃錛屽弬鏁版槸瀹瑰櫒鏈韓銆?span style="COLOR: red">娉ㄦ剰濡倂ector娌℃湁push_front鐨勬搷浣滐紝鎵浠ヤ笉鑳戒嬌鐢╢ront_inserter榪唬鍣ㄣ?/span>
Back inserters錛氬皢瀵硅薄鎻掑叆鍒版暟鎹泦鐨勫熬閮紝渚嬪vector鐨勫熬閮紝瀵艱嚧vector瀹瑰櫒鎵╁睍銆傝榪唬鍣ㄨ皟鐢ㄥ鍣ㄧ殑push_back鎿嶄綔鏇夸唬璧嬪艱繍綆楃錛屽弬鏁版槸瀹瑰櫒鏈韓銆?br>娉ㄦ剰錛氫嬌鐢ㄦ彃鍏ヨ凱浠e櫒鍙兘瀵艱嚧瀹瑰櫒涓殑鍏朵粬瀵硅薄縐誨姩浣嶇疆錛屽洜姝ょ幇鏈夌殑榪唬鍣ㄥ彉鎴愰潪娉曪紝闇瑕侀噸鏂拌祴鍊鹼紙list闄ゅ錛屼笉鍙楀獎鍝嶏級銆?/span>

    int arr[] = {1, 2, 3, 4, 5};
list<int> vi;
copy(arr, arr + 5; front_inserter(vi));
//鏈緇堢粨鏋滄寜搴忔槸5 4 3 2 1錛屽洜涓烘瘡嬈¤皟鐢╬ush_front灝嗕竴涓暟鎹彃鍏ュ埌vi鐨勫墠闈?/span>銆?br>list<int>::iterator p = find(vi.begin(), vi.end(), 2);
copy(arr, arr + 2, inserter(vi, p));
//鏈緇堢粨鏋滄槸5 4 3 1 2 2 1錛屽洜涓鴻皟鐢╥nsert涓嬈℃у皢鎵鏈夋暟鎹彃鍏ュ埌p鍓?/span>銆?/div>


5.娣峰悎榪唬鍣ㄥ嚱鏁幫細
涓嬮潰涓や釜榪唬鍣ㄥ嚱鏁伴潪甯告湁鐢細
advance(iterator, int)錛氭寜鐓ф寚瀹氱殑鏁扮洰澧炲噺榪唬鍣紝iterator鏀瑰彉銆傜涓涓弬鏁版槸榪唬鍣紝絎簩涓弬鏁版槸澧炲噺鐨勬暟鐩紙鍓嶅悜榪唬鍣ㄨ鏁板繀欏諱負姝o紝鍙屽悜鎴栬呴殢鏈鴻凱浠e櫒璇ユ暟鍙互涓鴻礋錛夈?br>distance(iterator, iterator)錛氳繑鍥炲埌杈句竴涓凱浠e櫒鎵闇閫掑鎿嶄綔鐨勬暟鐩紝鍗充袱涓凱浠e櫒鐩稿樊鐨勮窛紱匯?br>



榪滈 2009-10-12 08:31 鍙戣〃璇勮
]]>瀹瑰櫒閫傞厤鍣╯tack/queue/priority_queue灝忕粨http://www.shnenglu.com/amazon/archive/2009/08/13/93253.html榪滈榪滈Thu, 13 Aug 2009 12:59:00 GMThttp://www.shnenglu.com/amazon/archive/2009/08/13/93253.htmlhttp://www.shnenglu.com/amazon/comments/93253.htmlhttp://www.shnenglu.com/amazon/archive/2009/08/13/93253.html#Feedback0http://www.shnenglu.com/amazon/comments/commentRss/93253.htmlhttp://www.shnenglu.com/amazon/services/trackbacks/93253.html閫傞厤鍣ㄦ病鏈夋彁渚涜凱浠e櫒錛屼篃涓嶈兘鍚屾椂鎻掑叆鎴栧垹闄ゅ涓厓绱犮?/span>涓嬮潰瀵瑰悇涓傞厤鍣ㄨ繘琛屾鎷葷粨銆?br>
錛?錛塻tack鐢ㄦ硶
#include <stack>
template < typename T, typename Container=deque > class stack;
鍙互浣跨敤涓変釜鏍囧噯欏哄簭瀹瑰櫒vecotr銆乨eque銆乴ist涓殑浠諱綍涓涓綔涓簊tack鐨勫簳灞傛ā鍨嬨?br>bool stack<T>::empty()                             //鍒ゆ柇鍫嗘爤鏄惁涓虹┖
void stack<T>::pop()                                //寮瑰嚭鏍堥《鏁版嵁
stack<T>::push(T x)                                 //鍘嬪叆涓涓暟鎹?br>stack<T>::size_type stack<T>::size()        //榪斿洖鍫嗘爤闀垮害
T stack<T>::top()                                    //寰楀埌鏍堥《鏁版嵁

錛?錛塹ueue鐢ㄦ硶
#include <queue>
template<typename T, typename Container = deque<T> > class queue;
絎竴涓弬鏁版寚瀹氳鍦╭ueue涓瓨鍌ㄧ殑綾誨瀷錛岀浜屼釜鍙傛暟瑙勫畾queue閫傞厤鐨勫簳灞傚鍣紝鍙緵閫夋嫨鐨勫鍣ㄥ彧鏈塪equeue鍜宭ist銆傚澶у鏁扮敤閫斾嬌鐢ㄩ粯璁ょ殑dequeue銆?br>queue<T>::push(T x)
void queue<T>::pop()
T queue<T>::back()
T queue<T>::front()
queue<T>::size_type queue<T>::size()
bool queue<T>::empty()

錛?錛塸riority_queue鐢ㄦ硶
#include <queue>
template <typename T, typename Container = vector<T>, typename Compare = less<T> > class priority_queue;
priority_queue涔熸槸涓涓槦鍒楋紝鍏跺厓绱犳寜鏈夊簭欏哄簭鎺掑垪銆傚叾涓嶉噰鐢ㄤ弗鏍肩殑FIFO欏哄簭錛岀粰瀹氭椂鍒諱綅浜庨槦澶寸殑鍏冪礌姝f槸鏈夋渶楂樹紭鍏堢駭鐨勫厓绱犮傚鏋滀袱涓厓绱犳湁鐩稿悓鐨勪紭鍏堢駭錛岄偅涔堝畠浠湪闃熷垪涓殑欏哄簭灝遍伒寰狥IFO璇箟銆傞粯璁ら傞厤鐨勫簳灞傚鍣ㄦ槸vector錛屼篃鍙互浣跨敤deque錛宭ist涓嶈兘鐢紝鍥犱負priority_queue瑕佹眰鑳藉鍏冪礌闅忔満璁塊棶浠ヤ究榪涜鎺掑簭銆?br>priority_queue<T>::push(T x)
void priority_queue<T>::pop()
T priority_queue<T>::top()
priority_queue<T>::size_type priority_queue<T>::size()
bool priority_queue<T>::empty()

鏍囧噯搴撻粯璁や嬌鐢ㄥ厓绱犵被鍨嬬殑<鎿嶄綔絎︽潵紜畾瀹冧滑涔嬮棿鐨勪紭鍏堢駭鍏崇郴錛岀敤娉曟湁涓夛細錛堜笅鏂囪漿鑷?a >http://www.cnblogs.com/vvilp/articles/1504436.html錛?br>
浼樺厛闃熷垪絎竴縐嶇敤娉曪紝閫氳繃榛樿浣跨敤鐨?lt;鎿嶄綔絎﹀彲鐭ュ湪鏁存暟涓厓绱犲ぇ鐨勪紭鍏堢駭楂樸?br>priority_queue<int> qi;
紺轟緥涓緭鍑虹粨鏋滀負錛? 6 5 3 2

浼樺厛闃熷垪絎簩縐嶇敤娉曪紝寤虹珛priority_queue鏃朵紶鍏ヤ竴涓瘮杈冨嚱鏁幫紝浣跨敤functional.h鍑芥暟瀵硅薄浣滀負姣旇緝鍑芥暟銆?br>priority_queue<int, vector<int>, greater<int> >qi2;
紺轟緥2涓緭鍑虹粨鏋滀負錛? 3 5 6 9

浼樺厛闃熷垪絎笁縐嶇敤娉曪紝鏄嚜瀹氫箟浼樺厛綰с?br>struct node
{
    friend bool operator< (node n1, node n2)
    {
        return n1.priority < n2.priority;
    }
    int priority;
    int value;
};
priority_queue<node> qn;
鍦ㄧず渚?涓緭鍑虹粨鏋滀負錛?br>浼樺厛綰?nbsp; 鍊?br>9          5
8          2
6          1
2          3
1          4
鍦ㄨ緇撴瀯涓紝value涓哄鹼紝priority涓轟紭鍏堢駭銆傞氳繃鑷畾涔塷perator<鎿嶄綔絎︽潵姣旇緝鍏冪礌涓殑浼樺厛綰с傛敞鎰忥細蹇呴』鏄嚜瀹氫箟<鎿嶄綔絎︽墠琛岋紝鎶婁笂榪扮殑緇撴瀯涓殑<鎿嶄綔絎︽敼鎴?gt;緙栬瘧涓嶉氳繃銆?br>





榪滈 2009-08-13 20:59 鍙戣〃璇勮
]]>
久久综合伊人77777| 久久久久亚洲AV成人网人人网站 | av无码久久久久久不卡网站| 久久精品国产99久久久古代| 国内精品久久久久久99蜜桃 | 伊人 久久 精品| 久久亚洲精品成人av无码网站| 97久久精品人妻人人搡人人玩| 九九久久精品无码专区| 中文成人无码精品久久久不卡| 国产成人无码久久久精品一| 久久婷婷人人澡人人| 人妻精品久久无码专区精东影业 | 狠狠精品久久久无码中文字幕| 亚洲婷婷国产精品电影人久久| 99久久婷婷国产综合亚洲| 久久综合日本熟妇| 久久久久亚洲Av无码专| 中文字幕久久精品| 精品国产一区二区三区久久蜜臀| 亚洲综合精品香蕉久久网| 国产精品欧美久久久久无广告| 精品久久久久久中文字幕人妻最新| 久久久久一本毛久久久| 国产亚洲色婷婷久久99精品| 久久无码高潮喷水| 久久九九久精品国产| 日韩欧美亚洲综合久久影院d3| 亚洲AV无码一区东京热久久| 国内精品久久久久影院亚洲| 久久久久国产亚洲AV麻豆| 久久久久久久尹人综合网亚洲 | 国产精品毛片久久久久久久| 一本久久a久久精品亚洲| 日韩亚洲国产综合久久久| 国产精品久久久天天影视香蕉| 久久九九亚洲精品| 99久久成人18免费网站| 色综合色天天久久婷婷基地| 久久综合狠狠综合久久激情 | 久久精品国产免费|