锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国内精品久久久久久影视8,久久成人久久爱,亚洲宅男天堂在线观看无病毒http://m.shnenglu.com/zenliang/category/15256.htmlC/C++/Linuxzh-cnSun, 07 Nov 2010 14:20:07 GMTSun, 07 Nov 2010 14:20:07 GMT60C璇█涓璫har鍙橀噺璇﹁Вhttp://m.shnenglu.com/zenliang/articles/132850.htmloliveroliverSun, 07 Nov 2010 05:22:00 GMThttp://m.shnenglu.com/zenliang/articles/132850.htmlhttp://m.shnenglu.com/zenliang/comments/132850.htmlhttp://m.shnenglu.com/zenliang/articles/132850.html#Feedback0http://m.shnenglu.com/zenliang/comments/commentRss/132850.htmlhttp://m.shnenglu.com/zenliang/services/trackbacks/132850.htmlchar鏄疌/C++鏁村瀷鏁版嵁涓瘮杈冨彜鎬殑涓涓紝鍏跺畠鐨勫int/long/short絳変笉鎸囧畾signed/unsigned鏃墮兘榛樿鏄痵igned銆傝櫧鐒禼har鍦ㄦ爣鍑嗕腑鏄痷nsigned錛堝洜涓篶har綾誨瀷鎻愬嚭鐨勫垵琛鋒槸鐢ㄦ潵琛ㄧずascii鐮侊紝ascii鐮佺殑鑼冨洿鏄?~127錛夛紝浣嗗疄闄呮儏鍐典腑絀剁珶鏄痵igned榪樻槸unsigned鍙栧喅浜庣紪璇戝櫒銆?br>鍙氳繃涓嬮潰紼嬪簭鍒ゆ柇緙栬瘧鍣ㄧ殑榛樿char綾誨瀷錛?br>

 1void char_type()
 2{
 3  char c=0xFF;
 4  if(c==-1)
 5    printf("signed");
 6  elseif(c==255)
 7    printf("unsigned");
 8  else
 9    printf("error!");
10}

褰撲綘涓嶇‘瀹氱紪璇戝櫒鐨勯粯璁har綾誨瀷鏃訛紝灝辯敤鏄劇ず澹版槑錛歴igned char鍜寀nsigned char錛?br>
鍦–/C++璇█涓紝char鍙橀噺涓轟竴涓瓧鑺傦紝8浣嶏紝signed char琛ㄧず鐨勮寖鍥達(dá)細(xì)-128~127銆?128鍦ㄥ唴瀛樹腑鐨勪簩榪涘埗琛ㄧず涓?000 0000錛?27鍦ㄥ唴瀛樹腑鐨勮〃紺轟負(fù)0111 1111銆戯紱unsign char琛ㄧず鐨勮寖鍥達(dá)細(xì)0000 0000~1111 1111錛屽嵆0~255錛?br>
娉ㄦ剰錛氭暣鏁板湪鍐呭瓨涓槸浠ヨˉ鐮佸瓨鍙栫殑錛屾鏁扮殑琛ョ爜錛氱瓑浜庤嚜宸憋紝璐熸暟鐨勮ˉ鐮侊細(xì)鍙栧弽鍔?錛屼緥濡傦細(xì)127鍦ㄥ唴瀛樹腑琛ㄧず涓?111 1111錛?-127鍦ㄥ唴瀛樹腑琛ㄧず涓簙(0111 1111)+1=1000 0001錛?鍋囧畾鏌愬唴瀛樺崟鍏僷鐨勫唴瀹規(guī)槸1111 1111錛岄偅涔堝畠涓瀹氭槸255鍚楋紵瀹為檯涓婂彇鍐充簬浣犵殑浠g爜鏄鎶婂畠鐪嬫垚鏈夌鍙瘋繕鏄棤絎﹀彿鏁幫紝濡傛灉鏄棤絎﹀彿鍒欒〃紺?55錛屽鏋滄槸鏈夌鍙峰垯琛ㄧず-1銆愬浜庢湁絎﹀彿鏁幫紝鏈楂樹綅涓虹鍙蜂綅錛?琛ㄧず璐燂紝0琛ㄧず姝c戯細(xì)
signed char c=*p; //c=-1
unsigned char c=*p;//c=255
榪欎篃瑙i噴浜嗕笂闈㈣繖孌典唬鐮佽兘鍒ゆ柇緙栬瘧鍣ㄩ粯璁har綾誨瀷銆?br>



oliver 2010-11-07 13:22 鍙戣〃璇勮
]]>
搴撳嚱鏁癿emcpy()涓巑emmove()瀹炵幇http://m.shnenglu.com/zenliang/articles/131782.htmloliveroliverFri, 29 Oct 2010 12:06:00 GMThttp://m.shnenglu.com/zenliang/articles/131782.htmlhttp://m.shnenglu.com/zenliang/comments/131782.htmlhttp://m.shnenglu.com/zenliang/articles/131782.html#Feedback0http://m.shnenglu.com/zenliang/comments/commentRss/131782.htmlhttp://m.shnenglu.com/zenliang/services/trackbacks/131782.html
 1/* 
 2 * 鍑芥暟鍚? memcpy 
 3 * 鍔?nbsp; 鑳? 浠庢簮source涓嫹璐漬涓瓧鑺傚埌鐩爣destin涓?nbsp;
 4 * 鐢?nbsp; 娉? void *memcpy(void* destin, const void* source, size_t n); 
 5 * 璇?nbsp; 鏄? 鍐呭瓨鎷瘋礉
 6*/

 7
 8#include <stdio.h> 
 9#include <conio.h>   //getch澶存枃浠?/span>
10#include <assert.h>  //assert澶存枃浠?/span>
11
12typedef unsigned char byte
13//typedef unsigned int size_t;
14
15
16/*
17memcpy鍑芥暟錛屽鏋滃唴瀛橀噸鍙犲垯鎶ラ敊
18*/

19//src瑕佷繚鐣?/span>
20void* memcpy(void* dst,const void* src,size_t count) 
21{
22    byte* pbTo = (byte*)dst; 
23    byte* pbFrom = (byte*)src; 
24    assert(dst!= NULL && src != NULL);//涓嶈兘瀛樺湪絀烘寚閽?/span>
25    assert(pbTo >= pbFrom+count || pbFrom >= pbTo + count);//闃叉鍐呭瓨閲嶅彔(overlap) 
26    while (count-- > 0
27    
28        *pbTo++ = *pbFrom++
29    }
 
30    return dst; 
31}

32
33/*
34memmove鍑芥暟錛岃冭檻浜嗗唴瀛橀噸鍙犵殑鎯呭喌
35*/

36//src鍙互涓嶄繚鐣?/span>
37void* memmove(void* dst,const void* src,size_t count) 
38{     
39    byte* pbTo = (byte*)dst; 
40    byte* pbFrom = (byte*)src; 
41    assert(dst != NULL && src != NULL);//涓嶈兘瀛樺湪絀烘寚閽?/span>
42    if (dst <= src || pbTo >= pbFrom + count)// 
43    
44        while (count-- > 0
45        
46            *pbTo++ = *pbFrom++; //鎸夐掑鎷瘋礉
47        }
 
48    }
 
49    else  //
50    
51        pbTo = pbTo + count -1;//overlap鐨勬儏鍐碉紝浠庨珮浣嶅湴鍧鍚戜綆浣嶆嫹璐?nbsp;
52        pbFrom = pbFrom + count -1
53        while (count-- > 0
54        
55            *pbTo-- = *pbFrom--; //鎸夐掑噺鎷瘋礉
56        }
 
57    }
 
58    return dst; 
59}

60
61
62


oliver 2010-10-29 20:06 鍙戣〃璇勮
]]>
C++钁楀悕紼嬪簭搴撲粙緇?STL.Boost.GUI.XML.緗戠粶.綰跨▼.縐戝璁$畻絳?http://m.shnenglu.com/zenliang/articles/131600.htmloliveroliverThu, 28 Oct 2010 02:20:00 GMThttp://m.shnenglu.com/zenliang/articles/131600.htmlhttp://m.shnenglu.com/zenliang/comments/131600.htmlhttp://m.shnenglu.com/zenliang/articles/131600.html#Feedback0http://m.shnenglu.com/zenliang/comments/commentRss/131600.htmlhttp://m.shnenglu.com/zenliang/services/trackbacks/131600.html1銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺擟++鏍囧噯搴揝TL
2銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺斿噯鏍囧噯搴揃oost
3銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺擥UI
4銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺旂綉緇滈氫俊
5銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺擷ML
6銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺旂瀛﹁綆?br>7銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺旀父鎴忓紑鍙?br>8銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺旂嚎紼?br>9銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺斿簭鍒楀寲
10銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺斿瓧絎︿覆
11銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺旂患鍚?br>12銆丆++鍚勫ぇ鏈夊悕搴撶殑浠嬬粛鈥斺斿叾浠栧簱
13銆丆++鍚嶄漢鐨勭綉绔?br>14銆丆++寮婧愯法騫沖彴綾誨簱鍙?qiáng)鍦╒C++.net涓簲鐢ㄧ殑閰嶇疆
15銆丆++璧勬簮涔嬩笉瀹屽叏瀵煎紩

鍦–++涓紝搴撶殑鍦頒綅鏄潪甯擱珮鐨勩侰++涔嬬埗 Bjarne Stroustrup鍏堢敓澶氭琛ㄧず浜嗚璁″簱鏉ユ墿鍏呭姛鑳借濂借繃璁捐鏇村鐨勮娉曠殑璦璁恒傜幇瀹炰腑錛孋++鐨勫簱闂ㄧ被綣佸錛岃В鍐崇殑闂涔熸槸鏋佸叾騫挎硾錛屽簱浠庤交閲忕駭鍒伴噸閲忕駭鐨勯兘鏈夈備笉灝戦兘鏄浜虹溂鐣屽ぇ寮錛屼害鎴栨槸鏈涜岀敓鍙圭殑鎬濈淮鏉頒綔銆傜敱浜庡簱鐨勬暟閲忛潪甯稿簽澶э紝鑰屼笖闄愪簬絎旇呮按騫籌紝鍏朵腑寰堝騫朵笉浜嗚В銆傛墍浠ユ枃涓墍鎻愮殑涓浜涘簱閮芥槸姣旇緝钁楀悕鐨勫ぇ鍨嬪簱銆?/p>

璇︾粏搴撲粙緇嶈鍙傝冪綉鍧錛?a >http://blog.csdn.net/dbafans/archive/2010/06/16/5673114.aspx

 































oliver 2010-10-28 10:20 鍙戣〃璇勮
]]>
涓夊崄鍒嗛挓鎺屾彙STL銆愯漿銆?/title><link>http://m.shnenglu.com/zenliang/articles/131055.html</link><dc:creator>oliver</dc:creator><author>oliver</author><pubDate>Sun, 24 Oct 2010 06:11:00 GMT</pubDate><guid>http://m.shnenglu.com/zenliang/articles/131055.html</guid><wfw:comment>http://m.shnenglu.com/zenliang/comments/131055.html</wfw:comment><comments>http://m.shnenglu.com/zenliang/articles/131055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zenliang/comments/commentRss/131055.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zenliang/services/trackbacks/131055.html</trackback:ping><description><![CDATA[<p>榪欐槸鏈皬浜轟功銆傚師鍚嶆槸銆妘sing stl銆嬶紝涓嶇煡閬撴槸璋佸啓鐨勩備笉榪囨垜鍊掕寰楀緢鏈夎叮錛屾墍浠ュ寲浜嗕袱涓櫄涓婃妸瀹冪炕璇戝嚭鏉ャ傛垜娌℃湁瀵圭炕璇戝嚭鏉ョ殑鍐呭鏍¢獙榪囥傚鏋滀綘娌℃硶鍦ㄤ笁鍗佸垎閽熷唴瑙夊緱鏈夋墍鏀惰幏錛岄偅涔堣刀绱ф墧浜嗗畠銆傛枃涓垜鐪佺暐浜嗗緢澶氫笢瑗褲傚績鐤奸偅錛屾氮璐規(guī)垜涓や釜鏅氫笂銆?<br>璇戣咃細(xì)kary</p> <p>contact:karymay@163.net</p> <p>STL姒傝堪<br>STL鐨勪竴涓噸瑕佺壒鐐規(guī)槸鏁版嵁緇撴瀯鍜岀畻娉曠殑鍒嗙銆傚敖綆¤繖鏄釜綆鍗曠殑姒傚康錛屼絾榪欑鍒嗙紜疄浣垮緱STL鍙樺緱闈炲父閫氱敤銆備緥濡傦紝鐢變簬STL鐨剆ort()鍑芥暟鏄畬鍏ㄩ氱敤鐨勶紝浣犲彲浠ョ敤瀹冩潵鎿嶄綔鍑犱箮浠諱綍鏁版嵁闆嗗悎錛屽寘鎷摼琛紝瀹瑰櫒鍜屾暟緇勩?/p> <p>瑕佺偣<br>STL綆楁硶浣滀負(fù)妯℃澘鍑芥暟鎻愪緵銆備負(fù)浜嗗拰鍏朵粬緇勪歡鐩稿尯鍒紝鍦ㄦ湰涔︿腑STL綆楁硶浠ュ悗鎺ヤ竴瀵瑰渾鎷姬鐨勬柟寮忚〃紺猴紝渚嬪sort()銆?/p> <p>STL鍙︿竴涓噸瑕佺壒鎬ф槸瀹冧笉鏄潰鍚戝璞$殑銆備負(fù)浜嗗叿鏈夎凍澶熼氱敤鎬э紝STL涓昏渚濊禆浜庢ā鏉胯屼笉鏄皝瑁咃紝緇ф壙鍜岃櫄鍑芥暟錛堝鎬佹э級鈥斺擮OP鐨勪笁涓绱犮備綘鍦⊿TL涓壘涓嶅埌浠諱綍鏄庢樉鐨勭被緇ф壙鍏崇郴銆傝繖濂藉儚鏄竴縐嶅掗錛屼絾榪欐濂芥槸浣垮緱STL鐨勭粍浠跺叿鏈夊箍娉涢氱敤鎬х殑搴曞眰鐗瑰緛銆傚彟澶栵紝鐢變簬STL鏄熀浜庢ā鏉匡紝鍐呰仈鍑芥暟鐨勪嬌鐢ㄤ嬌寰楃敓鎴愮殑浠g爜鐭皬楂樻晥銆?/p> <p>鎻愮ず</p> <p>紜繚鍦ㄧ紪璇戜嬌鐢ㄤ簡STL鐨勭▼搴忎腑鑷沖皯瑕佷嬌鐢?O浼樺寲鏉ヤ繚璇佸唴鑱旀墿灞曘係TL鎻愪緵浜嗗ぇ閲忕殑妯℃澘綾誨拰鍑芥暟錛屽彲浠ュ湪OOP鍜屽父瑙勭紪紼嬩腑浣跨敤銆傛墍鏈夌殑STL鐨勫ぇ綰?0涓畻娉曢兘鏄畬鍏ㄩ氱敤鐨勶紝鑰屼笖涓嶄緷璧栦簬浠諱綍鐗瑰畾鐨勬暟鎹被鍨嬨備笅闈㈢殑灝忚妭璇存槑浜嗕笁涓熀鏈殑STL緇勪歡錛?/p> <p>1錛?nbsp;          榪唬鍣ㄦ彁渚涗簡璁塊棶瀹瑰櫒涓璞$殑鏂規(guī)硶銆備緥濡傦紝鍙互浣跨敤涓瀵硅凱浠e櫒鎸囧畾list鎴杤ector涓殑涓瀹氳寖鍥寸殑瀵硅薄銆傝凱浠e櫒灝卞鍚屼竴涓寚閽堛備簨瀹炰笂錛孋++鐨勬寚閽堜篃鏄竴縐嶈凱浠e櫒銆備絾鏄紝榪唬鍣ㄤ篃鍙互鏄偅浜涘畾涔変簡operator*()浠ュ強(qiáng)鍏朵粬綾諱技浜庢寚閽堢殑鎿嶄綔絎﹀湴鏂規(guī)硶鐨勭被瀵硅薄銆?/p> <p>2錛?nbsp;          瀹瑰櫒鏄竴縐嶆暟鎹粨鏋勶紝濡俵ist錛寁ector錛屽拰deques 錛屼互妯℃澘綾葷殑鏂規(guī)硶鎻愪緵銆備負(fù)浜嗚闂鍣ㄤ腑鐨勬暟鎹紝鍙互浣跨敤鐢卞鍣ㄧ被杈撳嚭鐨勮凱浠e櫒銆?/p> <p>3錛?nbsp;          綆楁硶鏄敤鏉ユ搷浣滃鍣ㄤ腑鐨勬暟鎹殑妯℃澘鍑芥暟銆備緥濡傦紝STL鐢╯ort()鏉ュ涓涓獀ector涓殑鏁版嵁榪涜鎺掑簭錛岀敤find()鏉ユ悳绱竴涓猯ist涓殑瀵硅薄銆傚嚱鏁版湰韜笌浠栦滑鎿嶄綔鐨勬暟鎹殑緇撴瀯鍜岀被鍨嬫棤鍏籌紝鍥犳浠栦滑鍙互鍦ㄤ粠綆鍗曟暟緇勫埌楂樺害澶嶆潅瀹瑰櫒鐨勪換浣曟暟鎹粨鏋勪笂浣跨敤銆?/p> <p>澶存枃浠?br>涓轟簡閬垮厤鍜屽叾浠栧ご鏂囦歡鍐茬獊錛?STL鐨勫ご鏂囦歡涓嶅啀浣跨敤甯歌鐨?h鎵╁睍銆備負(fù)浜嗗寘鍚爣鍑嗙殑string綾伙紝榪唬鍣ㄥ拰綆楁硶錛岀敤涓嬮潰鐨勬寚紺虹錛?/p> <p>#include <string></p> <p>#include <iterator></p> <p>#include <algorithm></p> <p><br>濡傛灉浣犳煡鐪婼TL鐨勫ご鏂囦歡錛屼綘鍙互鐪嬪埌璞terator.h鍜宻tl_iterator.h榪欐牱鐨勫ご鏂囦歡銆傜敱浜庤繖浜涘悕瀛楀湪鍚勭STL瀹炵幇涔嬮棿閮藉彲鑳戒笉鍚岋紝浣犲簲璇ラ伩鍏嶄嬌鐢ㄨ繖浜涘悕瀛楁潵寮曠敤榪欎簺澶存枃浠躲備負(fù)浜嗙‘淇濆彲縐繪鎬э紝浣跨敤鐩稿簲鐨勬病鏈?h鍚庣紑鐨勬枃浠跺悕銆傝〃1鍒楀嚭浜嗘渶甯鎬嬌鐢ㄧ殑鍚勭瀹瑰櫒綾葷殑澶存枃浠躲傝琛ㄥ茍涓嶅畬鏁達(dá)紝瀵逛簬鍏朵粬澶存枃浠訛紝鎴戝皢鍦ㄦ湰绔犲拰鍚庨潰鐨勪袱绔犱腑浠嬬粛銆?/p> <p><br>琛?1. STL澶存枃浠跺拰瀹瑰櫒綾?/p> <p>#include<br> Container Class<br> <br><deque><br> deque<br> <br><list><br> list<br> <br><map><br> map, multimap<br> <br><queue><br> queue, priority_queue<br> <br><set><br> set, multiset<br> <br><stack><br> stack<br> <br><vector><br> vector, vector<bool><br> </p> <p><br>鍚嶅瓧絀洪棿<br>浣犵殑緙栬瘧鍣ㄥ彲鑳戒笉鑳借瘑鍒悕瀛楃┖闂淬傚悕瀛楃┖闂村氨濂藉儚涓涓俊灝侊紝灝嗘爣蹇楃灝佽鍦ㄥ彟涓涓悕瀛椾腑銆傛爣蹇楃鍙湪鍚嶅瓧絀洪棿涓瓨鍦紝鍥犺岄伩鍏嶄簡鍜屽叾浠栨爣蹇楃鍐茬獊銆備緥濡傦紝鍙兘鏈夊叾浠栧簱鍜岀▼搴忔ā鍧楀畾涔変簡sort()鍑芥暟錛屼負(fù)浜嗛伩鍏嶅拰STL鍦皊ort()綆楁硶鍐茬獊錛孲TL鐨剆ort()浠ュ強(qiáng)鍏朵粬鏍囧織絎﹂兘灝佽鍦ㄥ悕瀛楃┖闂磗td涓係TL鐨剆ort()綆楁硶緙栬瘧涓簊td::sort()錛屼粠鑰岄伩鍏嶄簡鍚嶅瓧鍐茬獊銆?/p> <p>灝界浣犵殑緙栬瘧鍣ㄥ彲鑳芥病鏈夊疄鐜板悕瀛楃┖闂達(dá)紝浣犱粛鐒跺彲浠ヤ嬌鐢ㄤ粬浠備負(fù)浜嗕嬌鐢⊿TL錛屽彲浠ュ皢涓嬮潰鐨勬寚紺虹鎻掑叆鍒頒綘鐨勬簮浠g爜鏂囦歡涓紝鍏稿瀷鍦版槸鍦ㄦ墍鏈夌殑#include鎸囩ず絎︾殑鍚庨潰錛?/p> <p><br>using namespace std;</p> <p> </p> <p> </p> <p>榪唬鍣?br>榪唬鍣ㄦ彁渚涘涓涓鍣ㄤ腑鐨勫璞$殑璁塊棶鏂規(guī)硶錛屽茍涓斿畾涔変簡瀹瑰櫒涓璞$殑鑼冨洿銆傝凱浠e櫒灝卞鍚屼竴涓寚閽堛備簨瀹炰笂錛孋++鐨勬寚閽堜篃鏄竴縐嶈凱浠e櫒銆備絾鏄紝榪唬鍣ㄤ笉浠呬粎鏄寚閽堬紝鍥犳浣犱笉鑳借涓轟粬浠竴瀹氬叿鏈夊湴鍧鍊箋備緥濡傦紝涓涓暟緇勭儲寮曪紝涔熷彲浠ヨ涓烘槸涓縐嶈凱浠e櫒銆?/p> <p>榪唬鍣ㄦ湁鍚勭涓嶅悓鐨勫垱寤烘柟娉曘傜▼搴忓彲鑳芥妸榪唬鍣ㄤ綔涓轟竴涓彉閲忓垱寤恒備竴涓猄TL瀹瑰櫒綾誨彲鑳戒負(fù)浜嗕嬌鐢ㄤ竴涓壒瀹氱被鍨嬬殑鏁版嵁鑰屽垱寤轟竴涓凱浠e櫒銆備綔涓烘寚閽堬紝蹇呴』鑳藉浣跨敤*鎿嶄綔絎︾被鑾峰彇鏁版嵁銆備綘榪樺彲浠ヤ嬌鐢ㄥ叾浠栨暟瀛︽搷浣滅濡?+銆傚吀鍨嬬殑錛?+鎿嶄綔絎︾敤鏉ラ掑榪唬鍣紝浠ヨ闂鍣ㄤ腑鐨勪笅涓涓璞°傚鏋滆凱浠e櫒鍒拌揪浜嗗鍣ㄤ腑鐨勬渶鍚庝竴涓厓绱犵殑鍚庨潰錛屽垯榪唬鍣ㄥ彉鎴恜ast-the-end鍊箋備嬌鐢ㄤ竴涓猵ast-the-end鍊煎緱鎸囬拡鏉ヨ闂璞℃槸闈炴硶鐨勶紝灝卞ソ鍍忎嬌鐢∟ULL鎴栦負(fù)鍒濆鍖栫殑鎸囬拡涓鏍楓?/p> <p>鎻愮ず</p> <p>STL涓嶄繚璇佸彲浠ヤ粠鍙︿竴涓凱浠e櫒鏉ユ姷杈句竴涓凱浠e櫒銆備緥濡傦紝褰撳涓涓泦鍚堜腑鐨勫璞℃帓搴忔椂錛屽鏋滀綘鍦ㄤ笉鍚岀殑緇撴瀯涓寚瀹氫簡涓や釜榪唬鍣紝絎簩涓凱浠e櫒鏃犳硶浠庣涓涓凱浠e櫒鎶佃揪錛屾鏃剁▼搴忔敞瀹氳澶辮觸銆傝繖鏄疭TL鐏墊椿鎬х殑涓涓唬浠楓係TL涓嶄繚璇佹嫻嬫鏃犻亾鐞嗙殑閿欒銆?/p> <p>榪唬鍣ㄧ殑綾誨瀷<br>瀵逛簬STL鏁版嵁緇撴瀯鍜岀畻娉曪紝浣犲彲浠ヤ嬌鐢ㄤ簲縐嶈凱浠e櫒銆備笅闈㈢畝瑕佽鏄庝簡榪欎簲縐嶇被鍨嬶細(xì)</p> <p>·        Input iterators 鎻愪緵瀵規(guī)暟鎹殑鍙璁塊棶銆?/p> <p>·        Output iterators 鎻愪緵瀵規(guī)暟鎹殑鍙啓璁塊棶</p> <p>·        Forward iterators 鎻愪緵璇誨啓鎿嶄綔錛屽茍鑳藉悜鍓嶆帹榪涜凱浠e櫒銆?/p> <p>·        Bidirectional iterators鎻愪緵璇誨啓鎿嶄綔錛屽茍鑳藉悜鍓嶅拰鍚戝悗鎿嶄綔銆?/p> <p>·        Random access iterators鎻愪緵璇誨啓鎿嶄綔錛屽茍鑳藉湪鏁版嵁涓殢鏈虹Щ鍔ㄣ?/p> <p>灝界鍚勭涓嶅悓鐨凷TL瀹炵幇緇嗚妭鏂歸潰鏈夋墍涓嶅悓錛岃繕鏄彲浠ュ皢涓婇潰鐨勮凱浠e櫒鎯寵薄涓轟竴縐嶇被緇ф壙鍏崇郴銆備粠榪欎釜鎰忎箟涓婅錛屼笅闈㈢殑榪唬鍣ㄧ戶鎵胯嚜涓婇潰鐨勮凱浠e櫒銆傜敱浜庤繖縐嶇戶鎵垮叧緋伙紝浣犲彲浠ュ皢涓涓狥orward榪唬鍣ㄤ綔涓轟竴涓猳utput鎴杋nput榪唬鍣ㄤ嬌鐢ㄣ傚悓鏍鳳紝濡傛灉涓涓畻娉曡姹傛槸涓涓猙idirectional 榪唬鍣紝閭d箞鍙兘浣跨敤璇ョ綾誨瀷鍜岄殢鏈鴻闂凱浠e櫒銆?</p> <p>鎸囬拡榪唬鍣?br>姝e涓嬮潰鐨勫皬紼嬪簭鏄劇ず鐨勶紝涓涓寚閽堜篃鏄竴縐嶈凱浠e櫒銆傝紼嬪簭鍚屾牱鏄劇ず浜哠TL鐨勪竴涓富瑕佺壒鎬р斺斿畠涓嶅彧鏄兘澶熺敤浜庡畠鑷繁鐨勭被綾誨瀷錛岃屼笖涔熻兘鐢ㄤ簬浠諱綍C鎴朇++綾誨瀷銆侺isting 1, iterdemo.cpp, 鏄劇ず浜嗗浣曟妸鎸囬拡浣滀負(fù)榪唬鍣ㄧ敤浜嶴TL鐨刦ind()綆楁硶鏉ユ悳绱㈡櫘閫氱殑鏁扮粍銆?/p> <p>琛?1. iterdemo.cpp </p> <p>#include <iostream.h><br>#include <algorithm><br> <br>using namespace std;<br> <br>#define SIZE 100<br>int iarray[SIZE];<br> <br>int main()<br>{<br>  iarray[20] = 50;<br>  int* ip = find(iarray, iarray + SIZE, 50);<br>  if (ip == iarray + SIZE)<br>    cout << "50 not found in array" << endl;<br>  else<br>    cout << *ip << " found in array" << endl;<br>  return 0;<br>}<br>鍦ㄥ紩鐢ㄤ簡I/O嫻佸簱鍜孲TL綆楁硶澶存枃浠訛紙娉ㄦ剰娌℃湁.h鍚庣紑錛夛紝璇ョ▼搴忓憡璇夌紪璇戝櫒浣跨敤std鍚嶅瓧絀洪棿銆備嬌鐢╯td鍚嶅瓧絀洪棿鐨勮繖琛屾槸鍙夌殑錛屽洜涓哄彲浠ュ垹闄よ琛屽浜庤繖涔堜竴涓皬紼嬪簭鏉ヨ涓嶄細(xì)瀵艱嚧鍚嶅瓧鍐茬獊銆?/p> <p>紼嬪簭涓畾涔変簡灝哄涓篠IZE鐨勫叏灞鏁扮粍銆傜敱浜庢槸鍏ㄥ眬鍙橀噺錛屾墍浠ヨ繍琛屾椂鏁扮粍鑷姩鍒濆鍖栦負(fù)闆躲備笅闈㈢殑璇彞灝嗗湪绱㈠紩20浣嶇疆澶勫湴鍏冪礌璁劇疆涓?0,騫朵嬌鐢╢ind()綆楁硶鏉ユ悳绱㈠?0: </p> <p>iarray[20] = 50;<br>int* ip = find(iarray, iarray + SIZE, 50);<br>find()鍑芥暟鎺ュ彈涓変釜鍙傛暟銆傚ご涓や釜瀹氫箟浜嗘悳绱㈢殑鑼冨洿銆傜敱浜嶤鍜孋++鏁扮粍絳夊悓浜庢寚閽堬紝琛ㄨ揪寮廼array鎸囧悜鏁扮粍鐨勭涓涓厓绱犮傝岀浜屼釜鍙傛暟iarray + SIZE絳夊悓浜巔ast-the-end 鍊鹼紝涔熷氨鏄暟緇勪腑鏈鍚庝竴涓厓绱犵殑鍚庨潰浣嶇疆銆傜涓変釜鍙傛暟鏄緟瀹氫綅鐨勫鹼紝涔熷氨鏄?0銆俧ind()鍑芥暟榪斿洖鍜屽墠涓や釜鍙傛暟鐩稿悓綾誨瀷鐨勮凱浠e櫒錛岃繖鍎挎槸涓涓寚鍚戞暣鏁扮殑鎸囬拡ip銆?</p> <p>鎻愮ず</p> <p>蹇呴』璁頒綇STL浣跨敤妯℃澘銆傚洜姝わ紝STL鍑芥暟鑷姩鏍規(guī)嵁瀹冧滑浣跨敤鐨勬暟鎹被鍨嬫潵鏋勯犮?/p> <p>涓轟簡鍒ゆ柇find()鏄惁鎴愬姛錛屼緥瀛愪腑嫻嬭瘯ip鍜?past-the-end 鍊兼槸鍚︾浉絳夛細(xì) </p> <p>if (ip == iarray + SIZE) ...<br>濡傛灉琛ㄨ揪寮忎負(fù)鐪燂紝鍒欒〃紺哄湪鎼滅儲鐨勮寖鍥村唴娌℃湁鎸囧畾鐨勫箋傚惁鍒欏氨鏄寚鍚戜竴涓悎娉曞璞$殑鎸囬拡錛岃繖鏃跺彲浠ョ敤涓嬮潰鐨勮鍙ユ樉紺猴細(xì):</p> <p>cout << *ip << " found in array" << endl;<br>嫻嬭瘯鍑芥暟榪斿洖鍊煎拰NULL鏄惁鐩哥瓑鏄笉姝g‘鐨勩備笉瑕佽薄涓嬮潰榪欐牱浣跨敤錛?/p> <p>int* ip = find(iarray, iarray + SIZE, 50);<br>if (ip != NULL) ...  // ??? incorrect<br>褰撲嬌鐢⊿TL鍑芥暟鏃訛紝鍙兘嫻嬭瘯ip鏄惁鍜宲ast-the-end 鍊兼槸鍚︾浉絳夈傚敖綆″湪鏈緥涓璱p鏄竴涓狢++鎸囬拡,鍏剁敤娉曚篃蹇呴』絎﹀悎STL榪唬鍣ㄧ殑瑙勫垯銆?/p> <p>瀹瑰櫒榪唬鍣?br>灝界C++鎸囬拡涔熸槸榪唬鍣紝浣嗙敤鐨勬洿澶氱殑鏄鍣ㄨ凱浠e櫒銆傚鍣ㄨ凱浠e櫒鐢ㄦ硶鍜宨terdemo.cpp涓鏍鳳紝浣嗗拰灝嗚凱浠e櫒鐢蟲槑涓烘寚閽堝彉閲忎笉鍚岀殑鏄紝浣犲彲浠ヤ嬌鐢ㄥ鍣ㄧ被鏂規(guī)硶鏉ヨ幏鍙栬凱浠e櫒瀵硅薄銆備袱涓吀鍨嬬殑瀹瑰櫒綾繪柟娉曟槸begin()鍜宔nd()銆傚畠浠湪澶у鏁板鍣ㄤ腑琛ㄧず鏁翠釜瀹瑰櫒鑼冨洿銆傚叾浠栦竴浜涘鍣ㄨ繕浣跨敤rbegin()鍜宺end()鏂規(guī)硶鎻愪緵鍙嶅悜榪唬鍣紝浠ユ寜鍙嶅悜欏哄簭鎸囧畾瀵硅薄鑼冨洿銆?/p> <p>涓嬮潰鐨勭▼搴忓垱寤轟簡涓涓煝閲忓鍣紙STL鐨勫拰鏁扮粍絳変環(huán)鐨勫璞★級錛屽茍浣跨敤榪唬鍣ㄥ湪鍏朵腑鎼滅儲銆傝紼嬪簭鍜屽墠涓绔犱腑鐨勭▼搴忕浉鍚屻?/p> <p>Listing 2. vectdemo.cpp </p> <p>#include <iostream.h><br>#include <algorithm><br>#include <vector><br> <br>using namespace std;<br> <br>vector<int> intVector(100);<br> <br>void main()<br>{<br>  intVector[20] = 50;<br>  vector<int>::iterator intIter =<br>    find(intVector.begin(), intVector.end(), 50);<br>  if (intIter != intVector.end())<br>    cout << "Vector contains value " << *intIter << endl;<br>  else<br>    cout << "Vector does not contain 50" << endl;<br>}<br> <br>娉ㄦ剰鐢ㄤ笅闈㈢殑鏂規(guī)硶鏄劇ず鎼滅儲鍒扮殑鏁版嵁錛?/p> <p>cout << "Vector contains value " << *intIter << endl;<br>甯擱噺榪唬鍣?br>鍜屾寚閽堜竴鏍鳳紝浣犲彲浠ョ粰涓涓凱浠e櫒璧嬪箋備緥濡傦紝棣栧厛鐢蟲槑涓涓凱浠e櫒錛?/p> <p>vector<int>::iterator first;<br>璇ヨ鍙ュ垱寤轟簡涓涓獀ector<int>綾葷殑榪唬鍣ㄣ備笅闈㈢殑璇彞灝嗚榪唬鍣ㄨ緗埌intVector鐨勭涓涓璞★紝騫跺皢瀹冩寚鍚戠殑瀵硅薄鍊艱緗負(fù)123錛?</p> <p>first = intVector.begin();<br>*first = 123;<br>榪欑璧嬪煎浜庡ぇ澶氭暟瀹瑰櫒綾婚兘鏄厑璁哥殑錛岄櫎浜嗗彧璇誨彉閲忋備負(fù)浜嗛槻姝㈤敊璇祴鍊鹼紝鍙互鐢蟲槑榪唬鍣ㄤ負(fù)錛?/p> <p>const vector<int>::iterator result;<br>result = find(intVector.begin(), intVector.end(), value);<br>if (result != intVector.end())<br>  *result = 123;  // ???<br>璀﹀憡</p> <p>鍙︿竴縐嶉槻姝㈡暟鎹鏀瑰彉寰楁柟娉曟槸灝嗗鍣ㄧ敵鏄庝負(fù)const綾誨瀷銆?/p> <p>銆庡憖錛佸湪VC涓祴璇曞嚭閿?姝g‘鐨勫惈涔夋槸result鎴愪負(fù)甯擱噺鑰屼笉鏄畠鎸囧悜鐨勫璞′笉鍏佽鏀瑰彉錛屽鍚宨nt *const p;鐪嬫潵榪欎綔鑰呰嚜宸變篃涓嶆噦銆?</p> <p>浣跨敤榪唬鍣ㄧ紪紼?br>浣犲凡緇忚鍒頒簡榪唬鍣ㄧ殑涓浜涗緥瀛愶紝鐜板湪鎴戜滑灝嗗叧娉ㄦ瘡縐嶇壒瀹氱殑榪唬鍣ㄥ浣曚嬌鐢ㄣ傜敱浜庝嬌鐢ㄨ凱浠e櫒闇瑕佸叧浜嶴TL瀹瑰櫒綾誨拰綆楁硶鐨勭煡璇嗭紝鍦ㄩ槄璇諱簡鍚庨潰鐨勪袱绔犲悗浣犲彲鑳介渶瑕侀噸鏂板涔?fàn)涓涓嬫湰绔犲唴瀹廣?/p> <p>杈撳叆榪唬鍣?br>杈撳叆榪唬鍣ㄦ槸鏈鏅氱殑綾誨瀷銆傝緭鍏ヨ凱浠e櫒鑷沖皯鑳藉浣跨敤==鍜?=嫻嬭瘯鏄惁鐩哥瓑錛涗嬌鐢?鏉ヨ闂暟鎹紱浣跨敤++鎿嶄綔鏉ラ掓帹榪唬鍣ㄥ埌涓嬩竴涓厓绱犳垨鍒拌揪past-the-end 鍊箋?/p> <p>涓轟簡鐞嗚В榪唬鍣ㄥ拰STL鍑芥暟鏄浣曚嬌鐢ㄥ畠浠殑錛岀幇鍦ㄦ潵鐪嬩竴涓媐ind()妯℃澘鍑芥暟鐨勫畾涔夛細(xì)</p> <p>template <class InputIterator, class T><br>InputIterator find(<br>  InputIterator first, InputIterator last, const T& value) {<br>    while (first != last && *first != value) ++first;<br>    return first;<br>  }</p> <p>娉ㄦ剰</p> <p>鍦╢ind()綆楁硶涓紝娉ㄦ剰濡傛灉first鍜宭ast鎸囧悜涓嶅悓鐨勫鍣紝璇ョ畻娉曞彲鑳介櫡鍏ユ寰幆銆?/p> <p>杈撳嚭榪唬鍣?br>杈撳嚭榪唬鍣ㄧ己鐪佸彧鍐欙紝閫氬父鐢ㄤ簬灝嗘暟鎹粠涓涓綅緗嫹璐濆埌鍙︿竴涓綅緗傜敱浜庤緭鍑鴻凱浠e櫒鏃犳硶璇誨彇瀵硅薄錛屽洜姝や綘涓嶄細(xì)鍦ㄤ換浣曟悳绱㈠拰鍏朵粬綆楁硶涓嬌鐢ㄥ畠銆傝鎯寵鍙栦竴涓嫹璐濈殑鍊鹼紝蹇呴』浣跨敤鍙︿竴涓緭鍏ヨ凱浠e櫒錛堟垨瀹冪殑緇ф壙榪唬鍣級銆?/p> <p>Listing 3. outiter.cpp </p> <p>#include <iostream.h><br>#include <algorithm>   // Need copy()<br>#include <vector>      // Need vector<br> <br>using namespace std;<br> <br>double darray[10] =<br>  {1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9};<br> <br>vector<double> vdouble(10);<br> <br>int main()<br>{<br>  vector<double>::iterator outputIterator = vdouble.begin();<br>  copy(darray, darray + 10, outputIterator);<br>  while (outputIterator != vdouble.end()) {<br>    cout << *outputIterator << endl;<br>    outputIterator++;<br>  }<br>  return 0;<br>}<br>娉ㄦ剰 </p> <p>褰撲嬌鐢╟opy()綆楁硶鐨勬椂鍊欙紝浣犲繀欏葷‘淇濈洰鏍囧鍣ㄦ湁瓚沖澶х殑絀洪棿錛屾垨鑰呭鍣ㄦ湰韜槸鑷姩鎵╁睍鐨勩?/p> <p>鍓嶆帹榪唬鍣?br>鍓嶆帹榪唬鍣ㄨ兘澶熻鍐欐暟鎹鹼紝騫惰兘澶熷悜鍓嶆帹榪涘埌涓嬩竴涓箋備絾鏄病娉曢掑噺銆俽eplace()綆楁硶鏄劇ず浜嗗墠鎺ㄨ凱浠e櫒鐨勪嬌鐢ㄦ柟娉曘?</p> <p>template <class ForwardIterator, class T><br>void replace (ForwardIterator first,<br>              ForwardIterator last,<br>              const T& old_value,<br>              const T& new_value);<br>浣跨敤replace()灝哰first,last]鑼冨洿鍐呯殑鎵鏈夊間負(fù)old_value鐨勫璞℃浛鎹負(fù)new_value銆?</p> <p>replace(vdouble.begin(), vdouble.end(), 1.5, 3.14159);<br>鍙屽悜榪唬鍣?br>鍙屽悜榪唬鍣ㄨ姹傝兘澶熷鍑忋傚reverse()綆楁硶瑕佹眰涓や釜鍙屽悜榪唬鍣ㄤ綔涓哄弬鏁?</p> <p>template <class BidirectionalIterator><br>void reverse (BidirectionalIterator first,<br>              BidirectionalIterator last);<br>浣跨敤reverse()鍑芥暟鏉ュ瀹瑰櫒榪涜閫嗗悜鎺掑簭:</p> <p>reverse(vdouble.begin(), vdouble.end());<br>闅忔満璁塊棶榪唬鍣?br>闅忔満璁塊棶榪唬鍣ㄨ兘澶熶互浠繪剰欏哄簭璁塊棶鏁版嵁錛屽茍鑳界敤浜庤鍐欐暟鎹紙涓嶆槸const鐨凜++鎸囬拡涔熸槸闅忔満璁塊棶榪唬鍣級銆係TL鐨勬帓搴忓拰鎼滅儲鍑芥暟浣跨敤闅忔満璁塊棶榪唬鍣ㄣ傞殢鏈鴻闂凱浠e櫒鍙互浣跨敤鍏崇郴鎿嶄綔絎︿綔姣旇緝銆?/p> <p>random_shuffle() 鍑芥暟闅忔満鎵撲貢鍘熷厛鐨勯『搴忋傜敵鏄庝負(fù)錛?/p> <p>template <class RandomAccessIterator><br>void random_shuffle (RandomAccessIterator first,<br>                     RandomAccessIterator last);<br>浣跨敤鏂規(guī)硶錛?/p> <p>random_shuffle(vdouble.begin(), vdouble.end());<br>榪唬鍣ㄦ妧鏈?br>瑕佸浼?xì)鋴社敤鑴P浠e櫒鍜屽鍣ㄤ互鍙?qiáng)绠楁硶锛岄渶瑕佸涔?fàn)涓嬮潰鐨勬柊鎶鏈?/p> <p>嫻佸拰榪唬鍣?br>鏈功鐨勫緢澶氫緥瀛愮▼搴忎嬌鐢↖/O嫻佽鍙ユ潵璇誨啓鏁版嵁銆備緥濡傦細(xì)</p> <p>int value;<br>cout << "Enter value: ";<br>cin >> value;<br>cout << "You entered " << value << endl;<br>瀵逛簬榪唬鍣紝鏈夊彟涓縐嶆柟娉曚嬌鐢ㄦ祦鍜屾爣鍑嗗嚱鏁般傜悊瑙g殑瑕佺偣鏄皢杈撳叆/杈撳嚭嫻佷綔涓哄鍣ㄧ湅寰呫傚洜姝わ紝浠諱綍鎺ュ彈榪唬鍣ㄥ弬鏁扮殑綆楁硶閮藉彲浠ュ拰嫻佷竴璧峰伐浣溿?</p> <p>Listing 4. outstrm.cpp </p> <p>#include <iostream.h><br>#include <stdlib.h>    // Need random(), srandom()<br>#include <time.h>      // Need time()<br>#include <algorithm>   // Need sort(), copy()<br>#include <vector>      // Need vector<br> <br>using namespace std;<br> <br>void Display(vector<int>& v, const char* s);<br> <br>int main()<br>{<br>  // Seed the random number generator<br>  srandom( time(NULL) );<br> <br>  // Construct vector and fill with random integer values<br>  vector<int> collection(10);<br>  for (int i = 0; i < 10; i++)<br>    collection[i] = random() % 10000;;<br> <br>  // Display, sort, and redisplay<br>  Display(collection, "Before sorting");<br>  sort(collection.begin(), collection.end());<br>  Display(collection, "After sorting");<br>  return 0;<br>}<br> <br>// Display label s and contents of integer vector v<br>void Display(vector<int>& v, const char* s)<br>{<br>  cout << endl << s << endl;<br>  copy(v.begin(), v.end(),<br>    ostream_iterator<int>(cout, "\t"));<br>  cout << endl;<br>}<br>鍑芥暟Display()鏄劇ず浜嗗浣曚嬌鐢ㄤ竴涓緭鍑烘祦榪唬鍣ㄣ備笅闈㈢殑璇彞灝嗗鍣ㄤ腑鐨勫間紶杈撳埌cout杈撳嚭嫻佸璞′腑:</p> <p>copy(v.begin(), v.end(),<br>  ostream_iterator<int>(cout, "\t"));<br>絎笁涓弬鏁板疄渚嬪寲浜唎stream_iterator<int>綾誨瀷錛屽茍灝嗗畠浣滀負(fù)copy()鍑芥暟鐨勮緭鍑虹洰鏍囪凱浠e櫒瀵硅薄銆?#8220;\t”瀛楃涓叉槸浣滀負(fù)鍒嗛殧絎︺傝繍琛岀粨鏋滐細(xì)</p> <p>$ g++ outstrm.cpp<br>$ ./a.out<br>Before sorting<br>677   722   686   238   964   397   251   118   11    312<br>After sorting<br>11    118   238   251   312   397   677   686   722   964<br>榪欐槸STL紲炲鐨勪竴闈€庣‘瀹炵濂囥忋備負(fù)瀹氫箟杈撳嚭嫻佽凱浠e櫒錛孲TL鎻愪緵浜嗘ā鏉跨被ostream_iterator銆傝繖涓被鐨勬瀯閫犲嚱鏁版湁涓や釜鍙傛暟錛氫竴涓猳stream瀵硅薄鍜屼竴涓猻tring鍊箋傚洜姝ゅ彲浠ヨ薄涓嬮潰涓鏍風(fēng)畝鍗曞湴鍒涘緩涓涓凱浠e櫒瀵硅薄錛?/p> <p>ostream_iterator<int>(cout, "\n")<br>璇ヨ凱浠h搗鍙互鍜屼換浣曟帴鍙椾竴涓緭鍑鴻凱浠e櫒鐨勫嚱鏁頒竴璧蜂嬌鐢ㄣ?/p> <p>鎻掑叆榪唬鍣?br>鎻掑叆榪唬鍣ㄧ敤浜庡皢鍊兼彃鍏ュ埌瀹瑰櫒涓傚畠浠篃鍙仛閫傞厤鍣紝鍥犱負(fù)瀹冧滑灝嗗鍣ㄩ傞厤鎴栬漿鍖栦負(fù)涓涓凱浠e櫒錛屽茍鐢ㄤ簬copy()榪欐牱鐨勭畻娉曚腑銆備緥濡傦紝涓涓▼搴忓畾涔変簡涓涓摼琛ㄥ拰涓涓煝閲忓鍣?</p> <p>list<double> dList;<br>vector<double> dVector;<br>閫氳繃浣跨敤front_inserter榪唬鍣ㄥ璞★紝鍙互鍙敤鍗曚釜copy()璇彞灝卞畬鎴愬皢鐭㈤噺涓殑瀵硅薄鎻掑叆鍒伴摼琛ㄥ墠绔殑鎿嶄綔錛?/p> <p>copy(dVector.begin(), dVector.end(), front_inserter(dList));<br>涓夌鎻掑叆榪唬鍣ㄥ涓嬶細(xì)</p> <p>·        鏅氭彃鍏ュ櫒 灝嗗璞℃彃鍏ュ埌瀹瑰櫒浠諱綍瀵硅薄鐨勫墠闈€?/p> <p>·        Front inserters 灝嗗璞℃彃鍏ュ埌鏁版嵁闆嗙殑鍓嶉潰鈥斺斾緥濡傦紝閾捐〃琛ㄥご銆?/p> <p>·        Back inserters 灝嗗璞℃彃鍏ュ埌闆嗗悎鐨勫熬閮ㄢ斺斾緥濡傦紝鐭㈤噺鐨勫熬閮紝瀵艱嚧鐭㈤噺瀹瑰櫒鎵╁睍銆?/p> <p>浣跨敤鎻掑叆榪唬鍣ㄥ彲鑳藉鑷村鍣ㄤ腑鐨勫叾浠栧璞$Щ鍔ㄤ綅緗紝鍥犺屼嬌寰楃幇瀛樼殑榪唬鍣ㄩ潪娉曘備緥濡傦紝灝嗕竴涓璞℃彃鍏ュ埌鐭㈤噺瀹瑰櫒灝嗗鑷村叾浠栧肩Щ鍔ㄤ綅緗互鑵懼嚭絀洪棿銆備竴鑸潵璇達(dá)紝鎻掑叆鍒拌薄閾捐〃榪欐牱鐨勭粨鏋勪腑鏇翠負(fù)鏈夋晥錛屽洜涓哄畠浠笉浼?xì)瀵艰嚧鍏朵粬瀵硅薄绉诲姩銆?/p> <p>Listing 5. insert.cpp </p> <p>#include <iostream.h><br>#include <algorithm><br>#include <list><br> <br>using namespace std;<br> <br>int iArray[5] = { 1, 2, 3, 4, 5 };<br> <br>void Display(list<int>& v, const char* s);<br> <br>int main()<br>{<br>  list<int> iList;<br> <br>  // Copy iArray backwards into iList<br>  copy(iArray, iArray + 5, front_inserter(iList));<br>  Display(iList, "Before find and copy");<br> <br>  // Locate value 3 in iList<br>  list<int>::iterator p =<br>    find(iList.begin(), iList.end(), 3);<br> <br>  // Copy first two iArray values to iList ahead of p<br>  copy(iArray, iArray + 2, inserter(iList, p));<br>  Display(iList, "After find and copy");<br> <br>  return 0;<br>}<br> <br>void Display(list<int>& a, const char* s)<br>{<br>  cout << s << endl;<br>  copy(a.begin(), a.end(),<br>    ostream_iterator<int>(cout, " "));<br>  cout << endl;<br>}<br>榪愯緇撴灉濡備笅錛?/p> <p>$ g++ insert.cpp<br>$ ./a.out<br>Before find and copy<br>5 4 3 2 1<br>After find and copy<br>5 4 1 2 3 2 1<br>鍙互灝唂ront_inserter鏇挎崲涓篵ack_inserter璇曡瘯銆?/p> <p>濡傛灉鐢╢ind()鍘繪煡鎵懼湪鍒楄〃涓笉瀛樺湪鐨勫鹼紝渚嬪99銆傜敱浜庤繖鏃跺皢p璁劇疆涓簆ast-the-end 鍊箋傛渶鍚庣殑copy()鍑芥暟灝唅Array鐨勫奸檮鍔犲埌閾捐〃鐨勫悗閮ㄣ?/p> <p>娣峰悎榪唬鍣ㄥ嚱鏁?br>鍦ㄦ秹鍙?qiáng)鍒板鍣ㄥ拰绠楁硶鐨勬搷浣滀腑锛寴q樻湁涓や釜榪唬鍣ㄥ嚱鏁伴潪甯告湁鐢細(xì)</p> <p>·        advance() 鎸夋寚瀹氱殑鏁扮洰澧炲噺榪唬鍣ㄣ?/p> <p>·        distance() 榪斿洖鍒拌揪涓涓凱浠e櫒鎵闇錛堥掑錛夋搷浣滅殑鏁扮洰銆?/p> <p>渚嬪錛?/p> <p>list<int> iList;<br>list<int>::iterator p =<br>  find(iList.begin(), iList.end(), 2);<br>cout << "before: p == " << *p << endl;<br>advance(p, 2);  // same as p = p + 2;<br>cout << "after : p == " << *p << endl;<br> <br>int k = 0;<br>distance(p, iList.end(), k);<br>cout << "k == " << k << endl;<br> <br>advance()鍑芥暟鎺ュ彈涓や釜鍙傛暟銆傜浜屼釜鍙傛暟鏄悜鍓嶆帹榪涚殑鏁扮洰銆傚浜庡墠鎺ㄨ凱浠e櫒錛岃鍊煎繀欏諱負(fù)姝o紝鑰屽浜庡弻鍚戣凱浠e櫒鍜岄殢鏈鴻闂凱浠e櫒錛岃鍊煎彲浠ヤ負(fù)璐熴?/p> <p>浣跨敤 distance()鍑芥暟鏉ヨ繑鍥炲埌杈懼彟涓涓凱浠e櫒鎵闇瑕佺殑姝ラ銆?br>娉ㄦ剰</p> <p>distance()鍑芥暟鏄凱浠g殑錛屼篃灝辨槸璇達(dá)紝瀹冮掑絎笁涓弬鏁般傚洜姝わ紝浣犲繀欏誨垵濮嬪寲璇ュ弬鏁般傛湭鍒濆鍖栬鍙傛暟鍑犱箮娉ㄥ畾瑕佸け璐ャ?/p> <p>鍑芥暟鍜屽嚱鏁板璞?br>STL涓紝鍑芥暟琚О涓虹畻娉曪紝涔熷氨鏄瀹冧滑鍜屾爣鍑咰搴撳嚱鏁扮浉姣旓紝瀹冧滑鏇翠負(fù)閫氱敤銆係TL綆楁硶閫氳繃閲嶈澆operator()鍑芥暟瀹炵幇涓烘ā鏉跨被鎴栨ā鏉垮嚱鏁般傝繖浜涚被鐢ㄤ簬鍒涘緩鍑芥暟瀵硅薄錛屽瀹瑰櫒涓殑鏁版嵁榪涜鍚勭鍚勬牱鐨勬搷浣溿備笅闈㈢殑鍑犺妭瑙i噴濡備綍浣跨敤鍑芥暟鍜屽嚱鏁板璞°?/p> <p>鍑芥暟鍜屾柇璦<br>緇忓父闇瑕佸瀹瑰櫒涓殑鏁版嵁榪涜鐢ㄦ埛鑷畾涔夌殑鎿嶄綔銆備緥濡傦紝浣犲彲鑳藉笇鏈涢亶鍘嗕竴涓鍣ㄤ腑鎵鏈夊璞$殑STL綆楁硶鑳藉鍥炶皟鑷繁鐨勫嚱鏁般備緥濡?/p> <p>#include <iostream.h><br>#include <stdlib.h>     // Need random(), srandom()<br>#include <time.h>       // Need time()<br>#include <vector>       // Need vector<br>#include <algorithm>    // Need for_each()<br> <br>#define VSIZE 24        // Size of vector<br>vector<long> v(VSIZE);  // Vector object<br> <br>// Function prototypes<br>void initialize(long &ri);<br>void show(const long &ri);<br>bool isMinus(const long &ri);  // Predicate function<br> <br>int main()<br>{<br>  srandom( time(NULL) );  // Seed random generator<br> <br>  for_each(v.begin(), v.end(), initialize);//璋冪敤鏅氬嚱鏁?br>  cout << "Vector of signed long integers" << endl;<br>  for_each(v.begin(), v.end(), show);<br>  cout << endl;<br> <br>  // Use predicate function to count negative values<br>  //<br>  int count = 0;<br>  vector<long>::iterator p;<br>  p = find_if(v.begin(), v.end(), isMinus);//璋冪敤鏂█鍑芥暟<br>  while (p != v.end()) {<br>    count++;<br>    p = find_if(p + 1, v.end(), isMinus);<br>  }<br>  cout << "Number of values: " << VSIZE << endl;<br>  cout << "Negative values : " << count << endl;<br> <br>  return 0;<br>}<br> <br>// Set ri to a signed integer value<br>void initialize(long &ri)<br>{<br>  ri = ( random() - (RAND_MAX / 2) );<br>  //  ri = random();<br>}<br> <br>// Display value of ri<br>void show(const long &ri)<br>{<br>  cout << ri << "  ";<br>}<br> <br>// Returns true if ri is less than 0<br>bool isMinus(const long &ri)<br>{<br>  return (ri < 0);<br>}<br> <br>鎵璋撴柇璦鍑芥暟錛屽氨鏄繑鍥瀊ool鍊肩殑鍑芥暟銆?/p> <p>鍑芥暟瀵硅薄<br>闄や簡緇橲TL綆楁硶浼犻掍竴涓洖璋冨嚱鏁幫紝浣犺繕鍙兘闇瑕佷紶閫掍竴涓被瀵硅薄浠ヤ究鎵ц鏇村鏉傜殑鎿嶄綔銆傝繖鏍風(fēng)殑涓涓璞″氨鍙仛鍑芥暟瀵硅薄銆傚疄闄呬笂鍑芥暟瀵硅薄灝辨槸涓涓被錛屼絾瀹冨拰鍥炶皟鍑芥暟涓鏍峰彲浠ヨ鍥炶皟銆備緥濡傦紝鍦ㄥ嚱鏁板璞℃瘡嬈¤for_each()鎴杅ind_if()鍑芥暟璋冪敤鏃跺彲浠ヤ繚鐣欑粺璁′俊鎭傚嚱鏁板璞℃槸閫氳繃閲嶈澆operator()()瀹炵幇鐨勩傚鏋淭anyClass瀹氫箟浜唎peator()(),閭d箞灝卞彲浠ヨ繖涔堜嬌鐢細(xì)</p> <p>TAnyClass object;  // Construct object<br>object();          // Calls TAnyClass::operator()() function<br>for_each(v.begin(), v.end(), object);<br>STL瀹氫箟浜嗗嚑涓嚱鏁板璞°傜敱浜庡畠浠槸妯℃澘錛屾墍浠ヨ兘澶熺敤浜庝換浣曠被鍨嬶紝鍖呮嫭C/C++鍥烘湁鐨勬暟鎹被鍨嬶紝濡俵ong銆傛湁浜涘嚱鏁板璞′粠鍚嶅瓧涓氨鍙互鐪嬪嚭瀹冪殑鐢ㄩ旓紝濡俻lus()鍜宮ultiplies()銆傜被浼肩殑greater()鍜宭ess-equal()鐢ㄤ簬姣旇緝涓や釜鍊箋?</p> <p>娉ㄦ剰</p> <p>鏈変簺鐗堟湰鐨凙NSI C++瀹氫箟浜唗imes()鍑芥暟瀵硅薄錛岃孏NU C++鎶婂畠鍛藉悕涓簃ultiplies()銆備嬌鐢ㄦ椂蹇呴』鍖呭惈澶存枃浠?lt;functional>銆?/p> <p>涓涓湁鐢ㄧ殑鍑芥暟瀵硅薄鐨勫簲鐢ㄦ槸accumulate() 綆楁硶銆傝鍑芥暟璁$畻瀹瑰櫒涓墍鏈夊肩殑鎬誨拰銆傝浣忚繖鏍風(fēng)殑鍊間笉涓瀹氭槸綆鍗曠殑綾誨瀷錛岄氳繃閲嶈澆operator+()錛屼篃鍙互鏄被瀵硅薄銆?/p> <p>Listing 8. accum.cpp  </p> <p>#include <iostream.h><br>#include <numeric>      // Need accumulate()<br>#include <vector>       // Need vector<br>#include <functional>   // Need multiplies() (or times())<br> <br>#define MAX 10<br>vector<long> v(MAX);    // Vector object<br> <br>int main()<br>{<br>  // Fill vector using conventional loop<br>  //<br>  for (int i = 0; i < MAX; i++)<br>    v[i] = i + 1;<br> <br>  // Accumulate the sum of contained values<br>  //<br>  long sum =<br>    accumulate(v.begin(), v.end(), 0);<br>  cout << "Sum of values == " << sum << endl;<br> <br>  // Accumulate the product of contained values<br>  //<br>  long product =<br>    accumulate(v.begin(), v.end(), 1, multiplies<long>());//娉ㄦ剰榪欒<br>  cout << "Product of values == " << product << endl;<br> <br>  return 0;<br>}<br>緙栬瘧杈撳嚭濡備笅錛?/p> <p>$ g++ accum.cpp<br>$ ./a.out<br>Sum of values == 55<br>Product of values == 3628800<br>銆庢敞鎰忎嬌鐢ㄤ簡鍑芥暟瀵硅薄鐨刟ccumulate()鐨勭敤娉曘俛ccumulate() 鍦ㄥ唴閮ㄥ皢姣忎釜瀹瑰櫒涓殑瀵硅薄鍜岀涓変釜鍙傛暟浣滀負(fù)multiplies鍑芥暟瀵硅薄鐨勫弬鏁?multiplies(1,v)璁$畻涔樼Н銆俈C涓殑榪欎簺妯℃澘鐨勬簮浠g爜濡備笅錛?/p> <p>        // TEMPLATE FUNCTION accumulate</p> <p>template<class _II, class _Ty> inline</p> <p>    _Ty accumulate(_II _F, _II _L, _Ty _V)</p> <p>    {for (; _F != _L; ++_F)</p> <p>        _V = _V + *_F;</p> <p>    return (_V); }</p> <p>        // TEMPLATE FUNCTION accumulate WITH BINOP</p> <p>template<class _II, class _Ty, class _Bop> inline</p> <p>    _Ty accumulate(_II _F, _II _L, _Ty _V, _Bop _B)</p> <p>    {for (; _F != _L; ++_F)</p> <p>        _V = _B(_V, *_F);</p> <p>    return (_V); }</p> <p>        // TEMPLATE STRUCT binary_function</p> <p>template<class _A1, class _A2, class _R></p> <p>    struct binary_function {</p> <p>    typedef _A1 first_argument_type;</p> <p>    typedef _A2 second_argument_type;</p> <p>    typedef _R result_type;</p> <p>    };</p> <p>        // TEMPLATE STRUCT multiplies</p> <p>template<class _Ty></p> <p>    struct multiplies : binary_function<_Ty, _Ty, _Ty> {</p> <p>    _Ty operator()(const _Ty& _X, const _Ty& _Y) const</p> <p>        {return (_X * _Y); }</p> <p>    };</p> <p>寮曡█錛氬鏋滀綘鎯蟲繁鍏ヤ簡瑙TL鍒板簳鏄庝箞瀹炵幇鐨勶紝鏈濂界殑鍔炴硶鏄啓涓畝鍗曠殑紼嬪簭錛屽皢紼嬪簭涓秹鍙?qiáng)鍒扮殑妯℃澘婧愮爜缁檆opy涓嬫潵錛岀◢浣滄暣鐞嗭紝灝辮兘鐪嬫噦浜嗐傛墍浠ユ病鏈夊繀瑕佸幓涔頒粈涔堛奡TL婧愮爜鍓栨瀽銆嬩箣綾葷殑涔︾睄錛岄偅浜涗功鍙兘鍙嶈屾氮璐規(guī)椂闂淬傘?/p> <p>鍙戠敓鍣ㄥ嚱鏁板璞?br>鏈変竴綾繪湁鐢ㄧ殑鍑芥暟瀵硅薄鏄?#8220;鍙戠敓鍣?#8221;(generator)銆傝繖綾誨嚱鏁版湁鑷繁鐨勫唴瀛橈紝涔熷氨鏄瀹冭兘澶熶粠鍏堝墠鐨勮皟鐢ㄤ腑璁頒綇涓涓箋備緥濡傞殢鏈烘暟鍙戠敓鍣ㄥ嚱鏁般?/p> <p>鏅氱殑C紼嬪簭鍛樹嬌鐢ㄩ潤鎬佹垨鍏ㄥ眬鍙橀噺 “璁板繂”涓婃璋冪敤鐨勭粨鏋溿備絾榪欐牱鍋氱殑緙虹偣鏄鍑芥暟鏃犳硶鍜屽畠鐨勬暟鎹浉鍒嗙銆庤繕鏈変釜緙虹偣鏄鐢═LS鎵嶈兘綰跨▼瀹夊叏銆忋傛樉鐒訛紝浣跨敤綾繪潵灝佽涓鍧楋細(xì)“鍐呭瓨”鏇村畨鍏ㄥ彲闈犮傚厛鐪嬩竴涓嬩緥瀛愶細(xì)</p> <p>Listing 9. randfunc.cpp </p> <p>#include <iostream.h><br>#include <stdlib.h>    // Need random(), srandom()<br>#include <time.h>      // Need time()<br>#include <algorithm>   // Need random_shuffle()<br>#include <vector>      // Need vector<br>#include <functional>  // Need ptr_fun()<br> <br>using namespace std;<br> <br>// Data to randomize<br>int iarray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};<br>vector<int> v(iarray, iarray + 10);<br> <br>// Function prototypes<br>void Display(vector<int>& vr, const char *s);<br>unsigned int RandInt(const unsigned int n);<br> <br>int main()<br>{<br>  srandom( time(NULL) );  // Seed random generator<br>  Display(v, "Before shuffle:");<br> <br>  pointer_to_unary_function<unsigned int, unsigned int><br>    ptr_RandInt = ptr_fun(RandInt);  // Pointer to RandInt()//娉ㄦ剰榪欒<br>  random_shuffle(v.begin(), v.end(), ptr_RandInt);<br> <br>  Display(v, "After shuffle:");<br>  return 0;<br>}<br> <br>// Display contents of vector vr<br>void Display(vector<int>& vr, const char *s)<br>{<br>  cout << endl << s << endl;<br>  copy(vr.begin(), vr.end(), ostream_iterator<int>(cout, " "));<br>  cout << endl;<br>}<br> <br> <br>// Return next random value in sequence modulo n<br>unsigned int RandInt(const unsigned int n)<br>{<br>  return random() % n;<br>}<br>緙栬瘧榪愯緇撴灉濡備笅錛?/p> <p>$ g++ randfunc.cpp<br>$ ./a.out<br>Before shuffle:<br>1 2 3 4 5 6 7 8 9 10<br>After shuffle:<br>6 7 2 8 3 5 10 1 9 4<br>棣栧厛鐢ㄤ笅闈㈢殑璇彞鐢蟲槑涓涓璞★細(xì)</p> <p>pointer_to_unary_function<unsigned int, unsigned int><br>  ptr_RandInt = ptr_fun(RandInt);<br>榪欏効浣跨敤STL鐨勫崟鐩嚱鏁版ā鏉垮畾涔変簡涓涓彉閲弍tr_RandInt錛屽茍灝嗗湴鍧鍒濆鍖栧埌鎴戜滑鐨勫嚱鏁癛andInt()銆傚崟鐩嚱鏁版帴鍙椾竴涓弬鏁幫紝騫惰繑鍥炰竴涓箋傜幇鍦╮andom_shuffle()鍙互濡備笅璋冪敤錛?/p> <p>random_shuffle(v.begin(), v.end(), ptr_RandInt);<br>鍦ㄦ湰渚嬪瓙涓紝鍙戠敓鍣ㄥ彧鏄畝鍗曠殑璋冪敤rand()鍑芥暟銆?br> <br>鍏充簬甯擱噺寮曠敤鐨勪竴鐐瑰皬楹葷儲錛堜笉緲昏瘧浜嗭紝VC涓嬪皢渚嬪瓙涓殑const鍘繪帀錛?</p> <p>鍙戠敓鍣ㄥ嚱鏁扮被瀵硅薄<br>涓嬮潰鐨勪緥瀛愯鏄庡彂鐢熷櫒鍑芥暟綾誨璞$殑浣跨敤銆?/p> <p>Listing 10. fiborand.cpp </p> <p>#include <iostream.h><br>#include <algorithm>   // Need random_shuffle()<br>#include <vector>      // Need vector<br>#include <functional>  // Need unary_function<br> <br>using namespace std;<br> <br>// Data to randomize<br>int iarray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};<br>vector<int> v(iarray, iarray + 10);<br> <br>// Function prototype<br>void Display(vector<int>& vr, const char *s);<br> <br>// The FiboRand template function-object class<br>template <class Arg><br>class FiboRand : public unary_function<Arg, Arg> {<br>  int i, j;<br>  Arg sequence[18];<br>public:<br>  FiboRand();<br>  Arg operator()(const Arg& arg);<br>};<br> <br>void main()<br>{<br>  FiboRand<int> fibogen;  // Construct generator object<br>  cout << "Fibonacci random number generator" << endl;<br>  cout << "using random_shuffle and a function object" << endl;<br>  Display(v, "Before shuffle:");<br>  random_shuffle(v.begin(), v.end(), fibogen);<br>  Display(v, "After shuffle:");<br>}<br> <br>// Display contents of vector vr<br>void Display(vector<int>& vr, const char *s)<br>{<br>  cout << endl << s << endl;<br>  copy(vr.begin(), vr.end(),<br>    ostream_iterator<int>(cout, " "));<br>  cout << endl;<br>}<br> <br>// FiboRand class constructor<br>template<class Arg><br>FiboRand<Arg>::FiboRand()<br>{<br>  sequence[17] = 1;<br>  sequence[16] = 2;<br>  for (int n = 15; n > 0; n鈥?<br>    sequence[n] = sequence[n + 1] + sequence[n + 2];<br>  i = 17;<br>  j = 5;<br>}<br> <br>// FiboRand class function operator<br>template<class Arg><br>Arg FiboRand<Arg>::operator()(const Arg& arg)<br>{<br>  Arg k = sequence[i] + sequence[j];<br>  sequence[i] = k;<br>  i--;<br>  j--;<br>  if (i == 0) i = 17;<br>  if (j == 0) j = 17;<br>  return k % arg;<br>}<br>緙栬瘧榪愯杈撳嚭濡備笅:</p> <p>$ g++ fiborand.cpp<br>$ ./a.out<br>Fibonacci random number generator<br>using random_shuffle and a function object<br>Before shuffle:<br>1 2 3 4 5 6 7 8 9 10<br>After shuffle:<br>6 8 5 4 3 7 10 1 9<br>璇ョ▼搴忕敤瀹屽叏涓嶉氱殑鏂規(guī)硶浣跨敤浣跨敤rand_shuffle銆侳ibonacci 鍙戠敓鍣ㄥ皝瑁呭湪涓涓被涓紝璇ョ被鑳戒粠鍏堝墠鐨?#8220;浣跨敤”涓蹇嗚繍琛岀粨鏋溿傚湪鏈緥涓紝綾籉iboRand 緇存姢浜嗕竴涓暟緇勫拰涓や釜绱㈠紩鍙橀噺I鍜宩銆?/p> <p>FiboRand綾葷戶鎵胯嚜unary_function() 妯℃澘:</p> <p>template <class Arg><br>class FiboRand : public unary_function<Arg, Arg> {...<br>Arg鏄敤鎴瘋嚜瀹氫箟鏁版嵁綾誨瀷銆傝綾昏繕瀹氫互浜嗕袱涓垚鍛樺嚱鏁幫紝涓涓槸鏋勯犲嚱鏁幫紝鍙︿竴涓槸operator()錛堬級鍑芥暟錛岃鎿嶄綔絎﹀厑璁竢andom_shuffle()綆楁硶璞′竴涓嚱鏁頒竴鏍?#8220;璋冪敤”涓涓狥iboRand瀵硅薄銆?</p> <p>緇戝畾鍣ㄥ嚱鏁板璞?br>涓涓粦瀹氬櫒浣跨敤鍙︿竴涓嚱鏁板璞()鍜屽弬鏁板糣鍒涘緩涓涓嚱鏁板璞°傝緇戝畾鍑芥暟瀵硅薄蹇呴』涓哄弻鐩嚱鏁幫紝涔熷氨鏄鏈変袱涓弬鏁?A鍜孊銆係TL 涓殑甯畾鍣ㄦ湁錛?/p> <p>·        bind1st() 鍒涘緩涓涓嚱鏁板璞★紝璇ュ嚱鏁板璞″皢鍊糣浣滀負(fù)絎竴涓弬鏁癆銆?/p> <p>·        bind2nd()鍒涘緩涓涓嚱鏁板璞★紝璇ュ嚱鏁板璞″皢鍊糣浣滀負(fù)絎簩涓弬鏁癇銆?/p> <p>涓句緥濡備笅錛?/p> <p>Listing 11. binder.cpp </p> <p>#include <iostream.h><br>#include <algorithm><br>#include <functional><br>#include <list><br> <br>using namespace std;<br> <br>// Data<br>int iarray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};<br>list<int> aList(iarray, iarray + 10);<br> <br>int main()<br>{<br>  int k = 0;<br>  count_if(aList.begin(), aList.end(),<br>    bind1st(greater<int>(), 8), k);<br>  cout << "Number elements < 8 == " << k << endl;<br>  return 0;<br>}<br>Algorithm count_if()璁$畻婊¤凍鐗瑰畾鏉′歡鐨勫厓绱犵殑鏁扮洰銆?榪欐槸閫氳繃灝嗕竴涓嚱鏁板璞″拰涓涓弬鏁版崋緇戝埌涓轟竴涓璞★紝騫跺皢璇ュ璞′綔涓虹畻娉曠殑絎笁涓弬鏁板疄鐜扮殑銆?娉ㄦ剰榪欎釜琛ㄨ揪寮?</p> <p>bind1st(greater<int>(), 8)<br>璇ヨ〃杈懼紡灝唃reater<int>()鍜屼竴涓弬鏁板?鎹嗙粦涓轟竴涓嚱鏁板璞°傜敱浜庝嬌鐢ㄤ簡bind1st()錛屾墍浠ヨ鍑芥暟鐩稿綋浜庤綆椾笅榪拌〃杈懼紡錛?</p> <p>8 > q<br>琛ㄨ揪寮忎腑鐨剄鏄鍣ㄤ腑鐨勫璞°傚洜姝わ紝瀹屾暣鐨勮〃杈懼紡</p> <p>count_if(aList.begin(), aList.end(),<br>  bind1st(greater<int>(), 8), k);<br>璁$畻鎵鏈夊皬浜庢垨絳変簬8鐨勫璞$殑鏁扮洰銆?</p> <p>鍚﹀畾鍑芥暟瀵硅薄<br>鎵璋撳惁瀹?negator)鍑芥暟瀵硅薄錛屽氨鏄畠浠庡彟涓涓嚱鏁板璞″垱寤鴻屾潵錛屽鏋滃師鍏堢殑鍑芥暟榪斿洖鐪燂紝鍒欏惁瀹氬嚱鏁板璞¤繑鍥炲亣銆傛湁涓や釜鍚﹀畾鍑芥暟瀵硅薄錛歯ot1()鍜宯ot2()銆俷ot1()鎺ュ彈鍗曠洰鍑芥暟瀵硅薄錛宯ot2()鎺ュ彈鍙岀洰鍑芥暟瀵硅薄銆傚惁瀹氬嚱鏁板璞¢氬父鍜屽府瀹氬櫒涓璧蜂嬌鐢ㄣ備緥濡傦紝涓婅妭涓敤bind1nd鏉ユ悳绱<=8鐨勫鹼細(xì)</p> <p>  count_if(aList.begin(), aList.end(),<br>    bind1st(greater<int>(), 8), k);<br>濡傛灉瑕佹悳绱>8鐨勫璞★紝鍒欑敤bind2st銆傝岀幇鍦ㄥ彲浠ヨ繖鏍峰啓錛?/p> <p>start = find_if(aList.begin(), aList.end(),<br>  not1(bind1nd(greater<int>(), 6)));<br>浣犲繀欏諱嬌鐢╪ot1錛屽洜涓篵ind1nd榪斿洖鍗曠洰鍑芥暟銆?</p> <p>鎬葷粨錛氫嬌鐢ㄦ爣鍑嗘ā鏉垮簱 (STL)<br>灝界寰堝紼嬪簭鍛樹粛鐒跺湪浣跨敤鏍囧噯C鍑芥暟錛屼絾鏄繖灝卞ソ鍍忛獞鐫姣涢┐瀵繪壘Mercedes涓鏍楓備綘褰撶劧鏈緇堜篃浼?xì)鍒拌緞爣锛屼絾鏄綘娴垂浜嗗緢澶氭棄櫁淬?/p> <p>灝界鏈夋椂鍊欎嬌鐢ㄦ爣鍑咰鍑芥暟紜疄鏂逛究(濡備嬌鐢╯printf()榪涜鏍煎紡鍖栬緭鍑?銆備絾鏄疌鍑芥暟涓嶄嬌鐢ㄥ紓甯告満鍒舵潵鎶ュ憡閿欒錛屼篃涓嶉傚悎澶勭悊鏂扮殑鏁版嵁綾誨瀷銆傝屼笖鏍囧噯C鍑芥暟緇忓父浣跨敤鍐呭瓨鍒嗛厤鎶鏈紝娌℃湁緇忛獙鐨勭▼搴忓憳寰堝鏄撳啓鍑篵ug鏉ャ?</p> <p>C++鏍囧噯搴撳垯鎻愪緵浜嗘洿涓哄畨鍏紝鏇翠負(fù)鐏墊椿鐨勬暟鎹泦澶勭悊鏂瑰紡銆係TL鏈鍒濈敱HP瀹為獙瀹ょ殑Alexander Stepanov鍜孧eng Lee寮鍙戙傛渶榪戯紝C++鏍囧噯濮斿憳浼?xì)閲嚲U充簡STL錛屽敖綆″湪涓嶅悓鐨勫疄鐜頒箣闂翠粛鏈夌粏鑺傚樊鍒?/p> <p>STL鐨勬渶涓昏鐨勪袱涓壒鐐癸細(xì)鏁版嵁緇撴瀯鍜岀畻娉曠殑鍒嗙錛岄潪闈㈠悜瀵硅薄鏈川銆傝闂璞℃槸閫氳繃璞℃寚閽堜竴鏍風(fēng)殑榪唬鍣ㄥ疄鐜扮殑錛涘鍣ㄦ槸璞¢摼琛紝鐭㈤噺涔嬬被鐨勬暟鎹粨鏋勶紝騫舵寜妯℃澘鏂瑰紡鎻愪緵錛涚畻娉曟槸鍑芥暟妯℃澘錛岀敤浜庢搷浣滃鍣ㄤ腑鐨勬暟鎹傜敱浜嶴TL浠ユā鏉夸負(fù)鍩虹錛屾墍浠ヨ兘鐢ㄤ簬浠諱綍鏁版嵁綾誨瀷鍜岀粨鏋勩?/p> <p> </p> <img src ="http://m.shnenglu.com/zenliang/aggbug/131055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zenliang/" target="_blank">oliver</a> 2010-10-24 14:11 <a href="http://m.shnenglu.com/zenliang/articles/131055.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C/C++灝忓父璇?/title><link>http://m.shnenglu.com/zenliang/articles/130925.html</link><dc:creator>oliver</dc:creator><author>oliver</author><pubDate>Fri, 22 Oct 2010 13:02:00 GMT</pubDate><guid>http://m.shnenglu.com/zenliang/articles/130925.html</guid><wfw:comment>http://m.shnenglu.com/zenliang/comments/130925.html</wfw:comment><comments>http://m.shnenglu.com/zenliang/articles/130925.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/zenliang/comments/commentRss/130925.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/zenliang/services/trackbacks/130925.html</trackback:ping><description><![CDATA[<p>1.C++娉ㄩ噴濡欑敤錛?br>浠庡墠鏇劇粡鐪嬭繃涓縐嶄唬鐮佸紑鍏?/p> <p>//*錛堟渶鍓嶉潰鐨?鏄紑鍏籌紝鍘繪帀鍚庝笅闈㈣繖孌典唬鐮佸氨琚敞閲婁簡錛侊級</p> <p>   codeSegement1;</p> <p>//*/</p> <p><br>鍚庢潵錛屽湪鎴戠殑瀹炶返涓紝鎴戝張鍙戠幇浜嗗彲浠ュ湪涓ゆ浠g爜闂村垏鎹㈢殑鏂規(guī)硶錛?/p> <p>//*錛堟渶鍓嶉潰鐨?鏄紑鍏籌紝鍘繪帀鍚庣1孌佃娉ㄩ噴錛岀2孌墊湁鏁堬級</p> <p>   codeSegement1;</p> <p>/*/</p> <p>  <span style="COLOR: #0000ff">codeSegement2;</span></p> <p>//*/</p> <p> 2.NULL瀹氫箟<br>#ifndef NULL<br>#ifdef  __cplusplus<br>#define NULL    0<br>#else<br>#define NULL    ((void *)0)<br>#endif<br>#endif<br><br>3. 鏍囧噯澶存枃浠朵腑閮芥湁濡備笅緇撴瀯錛堟瘮濡俿tdio.h鏂囦歡錛夛細(xì)<br>#ifndef _INC_STDIO            <br>#define _INC_STDIO<br>#ifdef __cplusplus<br>extern "C" {<br>#endif <br>/*...<br>.....<br>*/ <br>#ifdef __cplusplus<br>}<br>#endif <br>#endif /* _INC_STDIO*/</p> <img src ="http://m.shnenglu.com/zenliang/aggbug/130925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/zenliang/" target="_blank">oliver</a> 2010-10-22 21:02 <a href="http://m.shnenglu.com/zenliang/articles/130925.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://sdkingpin.com" target="_blank">久久精品二区亚洲w码</a>| <a href="http://989p.com" target="_blank">亚洲韩国青草视频</a>| <a href="http://13751144594.com" target="_blank">久久精品国产成人</a>| <a href="http://y8e8.com" target="_blank">性欧美8khd高清极品</a>| <a href="http://312012.com" target="_blank">午夜精品久久久99热福利</a>| <a href="http://caofujia.com" target="_blank">午夜久久99</a>| <a href="http://xiaokd666.com" target="_blank">久久亚洲二区</a>| <a href="http://9885888.com" target="_blank">欧美日本不卡</a>| <a href="http://69ru.com" target="_blank">国产精品亚洲综合久久</a>| <a href="http://y66776.com" target="_blank">国内精品久久久</a>| <a href="http://004ttt.com" target="_blank">亚洲精品一区二区三区蜜桃久</a>| <a href="http://ccc159.com" target="_blank">亚洲人成亚洲人成在线观看图片</a>| <a href="http://ycgg008.com" target="_blank">日韩一区二区精品在线观看</a>| <a href="http://www57669.com" target="_blank">亚洲一区二区成人</a>| <a href="http://hbsmhy.com" target="_blank">久久香蕉国产线看观看av</a>| <a href="http://787282.com" target="_blank">亚洲国产你懂的</a>| <a href="http://48655aa.com" target="_blank">一区二区免费在线视频</a>| <a href="http://qdssqt.com" target="_blank">久久精品国产69国产精品亚洲</a>| <a href="http://99999zc.com" target="_blank">欧美电影在线免费观看网站</a>| <a href="http://thisisfil.com" target="_blank">国产精品美女www爽爽爽视频</a>| <a href="http://041935.com" target="_blank">狠狠色2019综合网</a>| <a href="http://excellentjy.com" target="_blank">中国av一区</a>| <a href="http://avicpharm.com" target="_blank">欧美国产精品久久</a>| <a href="http://www-4890.com" target="_blank">午夜精品久久久久久久</a>| <a href="http://34ak.com" target="_blank">欧美精品综合</a>| <a href="http://mmmm57.com" target="_blank">在线观看一区二区视频</a>| <a href="http://caogb.com" target="_blank">亚洲欧美精品suv</a>| <a href="http://d77dd.com" target="_blank">欧美激情综合色</a>| <a href="http://08xxxc.com" target="_blank">久久电影一区</a>| <a href="http://zzchanke.com" target="_blank">国产精品久久久久久久久久久久</a>| <a href="http://tefahsop.com" target="_blank">在线电影一区</a>| <a href="http://77mcn.com" target="_blank">久久国产乱子精品免费女 </a>| <a href="http://yymh1056.com" target="_blank">亚洲高清一区二</a>| <a href="http://021-job.com" target="_blank">一本色道久久综合狠狠躁篇的优点 </a>| <a href="http://gjjlzs.com" target="_blank">久久久久国产精品厨房</a>| <a href="http://xp1025.com" target="_blank">欧美啪啪成人vr</a>| <a href="http://989p.com" target="_blank">在线观看视频一区二区欧美日韩</a>| <a href="http://wtoykd.com" target="_blank">亚洲图片欧洲图片日韩av</a>| <a href="http://749996.com" target="_blank">麻豆av一区二区三区久久</a>| <a href="http://343119.com" target="_blank">亚洲午夜激情在线</a>| <a href="http://www559955.com" target="_blank">欧美喷潮久久久xxxxx</a>| <a href="http://wwwby2232.com" target="_blank">伊人成人在线</a>| <a href="http://ybshg.com" target="_blank">久久久久网站</a>| <a href="http://710952.com" target="_blank">欧美在线免费观看亚洲</a>| <a href="http://91ypp.com" target="_blank">国产精品美女久久久免费</a>| <a href="http://kpd034.com" target="_blank">999亚洲国产精</a>| <a href="http://tp112.com" target="_blank">亚洲国产欧美一区二区三区同亚洲</a>| <a href="http://9a5x.com" target="_blank">欧美一区高清</a>| <a href="http://baoxiniao666.com" target="_blank">国产欧美日韩综合一区在线播放</a>| <a href="http://choaoxing.com" target="_blank">一区二区免费看</a>| <a href="http://y8e8.com" target="_blank">亚洲国产影院</a>| <a href="http://czwangluoyouhua.com" target="_blank">蜜臀久久久99精品久久久久久</a>| <a href="http://www33779.com" target="_blank">国产中文一区二区</a>| <a href="http://hzhzzz.com" target="_blank">久久久人成影片一区二区三区 </a>| <a href="http://m72722.com" target="_blank">亚洲欧美韩国</a>| <a href="http://yahuake.com" target="_blank">欧美日韩亚洲不卡</a>| <a href="http://by274.com" target="_blank">亚洲午夜精品国产</a>| <a href="http://wslsp.com" target="_blank">一区二区三区 在线观看视频</a>| <a href="http://220fuke.com" target="_blank">欧美人牲a欧美精品</a>| <a href="http://xiuren2021.com" target="_blank">亚洲精品美女91</a>| <a href="http://y65o.com" target="_blank">亚洲精品亚洲人成人网</a>| <a href="http://caca060.com" target="_blank">欧美人与性动交a欧美精品</a>| <a href="http://689657.com" target="_blank">夜夜嗨av一区二区三区中文字幕</a>| <a href="http://www-111111.com" target="_blank">亚洲国产导航</a>| <a href="http://xmzszx.com" target="_blank">欧美日韩视频专区在线播放 </a>| <a href="http://921367.com" target="_blank">国产精品成人一区二区三区夜夜夜 </a>| <a href="http://770456.com" target="_blank">欧美日本中文字幕</a>| <a href="http://www151zh.com" target="_blank">av成人免费</a>| <a href="http://wzsl8.com" target="_blank">亚洲手机视频</a>| <a href="http://778877k.com" target="_blank">国产亚洲精品自拍</a>| <a href="http://5917t.com" target="_blank">欧美freesex交免费视频</a>| <a href="http://tk263.com" target="_blank">美日韩精品免费</a>| <a href="http://www224558.com" target="_blank">99国产精品视频免费观看</a>| <a href="http://www-6410c.com" target="_blank">日韩午夜高潮</a>| <a href="http://jzsp87.com" target="_blank">国产视频亚洲</a>| <a href="http://52sougou.com" target="_blank">欧美激情一区二区三区四区</a>| <a href="http://luqintang.com" target="_blank">欧美日韩18</a>| <a href="http://www-440447.com" target="_blank">久久国产精品99国产</a>| <a href="http://ktt2048.com" target="_blank">久久久精品国产免大香伊</a>| <a href="http://hongmoyi.com" target="_blank">亚洲国产成人不卡</a>| <a href="http://5849595.com" target="_blank">亚洲免费电影在线观看</a>| <a href="http://3bmmtv.com" target="_blank">国产精品三上</a>| <a href="http://zgslwtc.com" target="_blank">欧美影院成年免费版</a>| <a href="http://ddh345.com" target="_blank">夜夜精品视频</a>| <a href="http://zz9876.com" target="_blank">一区二区免费在线播放</a>| <a href="http://9511331.com" target="_blank">极品尤物久久久av免费看</a>| <a href="http://shuoqe.com" target="_blank">久热国产精品</a>| <a href="http://dkmcjc.com" target="_blank">欧美黄色aa电影</a>| <a href="http://xvideoav99.com" target="_blank">亚洲少妇中出一区</a>| <a href="http://777777hb.com" target="_blank">午夜精品视频在线</a>| <a href="http://www4455va.com" target="_blank">**性色生活片久久毛片</a>| <a href="http://chinashixin.com" target="_blank">亚洲人成网站999久久久综合</a>| <a href="http://love136.com" target="_blank">欧美三级午夜理伦三级中文幕</a>| <a href="http://91pero.com" target="_blank">欧美一级专区</a>| <a href="http://yx3369.com" target="_blank">蜜臀久久久99精品久久久久久</a>| <a href="http://621768.com" target="_blank">亚洲亚洲精品在线观看</a>| <a href="http://tjpzgs.com" target="_blank">久久精品成人一区二区三区</a>| <a href="http://ndr666.com" target="_blank">一区二区三区成人精品</a>| <a href="http://szywsj.com" target="_blank">久久av红桃一区二区小说</a>| <a href="http://www47011.com" target="_blank">亚洲另类黄色</a>| <a href="http://99999zc.com" target="_blank">久久国产福利国产秒拍</a>| <a href="http://xtgoldsky.com" target="_blank">这里只有精品视频</a>| <a href="http://kk1xx-com.com" target="_blank">久久精品一本</a>| <a href="http://621762.com" target="_blank">香蕉久久久久久久av网站</a>| <a href="http://xshgwy.com" target="_blank">欧美电影免费观看高清完整版</a>| <a href="http://wwwby6682.com" target="_blank">欧美一区二区大片</a>| <a href="http://2jjzz.com" target="_blank">欧美日韩a区</a>| <a href="http://ww245434.com" target="_blank">欧美二区在线播放</a>| <a href="http://ycgg008.com" target="_blank">国产日本欧美一区二区</a>| <a href="http://s3yx.com" target="_blank">亚洲精品一二</a>| <a href="http://88844401.com" target="_blank">亚洲国产精品电影</a>| <a href="http://rezel-zj.com" target="_blank">午夜在线一区</a>| <a href="http://330310c.com" target="_blank">亚洲欧美色婷婷</a>| <a href="http://psykoptic.com" target="_blank">欧美日韩精品福利</a>| <a href="http://beeperagain.com" target="_blank">噜噜噜在线观看免费视频日韩</a>| <a href="http://chainhuayu.com" target="_blank">国产精品ⅴa在线观看h</a>| <a href="http://339505.com" target="_blank">亚洲国产精品精华液2区45</a>| <a href="http://www3344xz.com" target="_blank">国产精品视频久久久</a>| <a href="http://2235e.com" target="_blank">日韩小视频在线观看</a>| <a href="http://wu52vip.com" target="_blank">亚洲精品视频在线看</a>| <a href="http://689558.com" target="_blank">久久综合九色综合欧美狠狠</a>| <a href="http://34ak.com" target="_blank">欧美在线观看视频在线</a>| <a href="http://w3e8.com" target="_blank">国产精品成人一区二区网站软件</a>| <a href="http://www17bxbx.com" target="_blank">91久久极品少妇xxxxⅹ软件</a>| <a href="http://9966k.com" target="_blank">亚洲大胆在线</a>| <a href="http://480192.com" target="_blank">久久亚洲私人国产精品va</a>| <a href="http://wzsl8.com" target="_blank">久久夜色精品国产</a>| <a href="http://csjtzn.com" target="_blank">狠狠色狠狠色综合系列</a>| <a href="http://220fuke.com" target="_blank">欧美一区亚洲</a>| <a href="http://xxdd51.com" target="_blank">久久久久欧美精品</a>| <a href="http://jsydjxgs.com" target="_blank">好吊成人免视频</a>| <a href="http://by2866.com" target="_blank">久久久精品一区</a>| <a href="http://ccc36-com.com" target="_blank">麻豆精品在线观看</a>| <a href="http://667996.com" target="_blank">狠狠色综合日日</a>| <a href="http://luqintang.com" target="_blank">久久这里只有</a>| <a href="http://05078888.com" target="_blank">亚洲国产欧美在线人成</a>| <a href="http://987kt.com" target="_blank">日韩亚洲视频在线</a>| <a href="http://yymh1056.com" target="_blank">欧美电影专区</a>| <a href="http://haohetour.com" target="_blank">亚洲精品日产精品乱码不卡</a>| <a href="http://799868.com" target="_blank">日韩亚洲综合在线</a>| <a href="http://spidermanseo.com" target="_blank">欧美好吊妞视频</a>| <a href="http://maomi998.com" target="_blank">亚洲精品一区二区三区在线观看</a>| <a href="http://921367.com" target="_blank">激情另类综合</a>| <a href="http://tutu80.com" target="_blank">女人天堂亚洲aⅴ在线观看</a>| <a href="http://ww323.com" target="_blank">欧美顶级少妇做爰</a>| <a href="http://4006616309.com" target="_blank">亚洲免费观看视频</a>| <a href="http://01xxtv.com" target="_blank">亚洲精品日日夜夜</a>| <a href="http://jav69me.com" target="_blank">亚洲人成网站999久久久综合</a>| <a href="http://hhbz518.com" target="_blank">在线不卡中文字幕</a>| <a href="http://ridenimbus.com" target="_blank">蜜乳av另类精品一区二区</a>| <a href="http://www888x.com" target="_blank">女人色偷偷aa久久天堂</a>| <a href="http://chongpiapia.com" target="_blank">激情亚洲一区二区三区四区</a>| <a href="http://cmtqd.com" target="_blank">久久综合九色九九</a>| <a href="http://22abb.com" target="_blank">99精品国产在热久久婷婷</a>| <a href="http://avicpharm.com" target="_blank">亚洲欧美激情视频</a>| <a href="http://by21999.com" target="_blank">国产亚洲一级</a>| <a href="http://submro.com" target="_blank">欧美激情1区2区</a>| <a href="http://xvideoav99.com" target="_blank">亚洲深夜福利网站</a>| <a href="http://www66441.com" target="_blank">久久视频一区</a>| <a href="http://www201314.com" target="_blank">99www免费人成精品</a>| <a href="http://98956888.com" target="_blank">国产精品视频yy9299一区</a>| <a href="http://149155.com" target="_blank">久久九九热re6这里有精品</a>| <a href="http://qiaoka526.com" target="_blank">欧美黄色网络</a>| <a href="http://xjhzgy.com" target="_blank">午夜精品视频在线观看</a>| <a href="http://118017.com" target="_blank">在线观看亚洲</a>| <a href="http://cp50088.com" target="_blank">欧美网站在线观看</a>| <a href="http://138268.com" target="_blank">久久五月激情</a>| <a href="http://eee88888.com" target="_blank">亚洲一区3d动漫同人无遮挡</a>| <a href="http://lucky5888.com" target="_blank">久久久免费精品视频</a>| <a href="http://pabjzz.com" target="_blank">一区二区三区视频在线播放</a>| <a href="http://9486322.com" target="_blank">国产精品视频免费观看www</a>| <a href="http://wwwnnnn.com" target="_blank">另类综合日韩欧美亚洲</a>| <a href="http://cfqcgw.com" target="_blank">亚洲视频一区二区在线观看</a>| <a href="http://my1315.com" target="_blank">另类天堂av</a>| <a href="http://3531888.com" target="_blank">亚洲欧美日韩精品久久久久</a>| <a href="http://wwwp6660.com" target="_blank">精品电影一区</a>| <a href="http://metagasa.com" target="_blank">国产精品美女www爽爽爽</a>| <a href="http://3534m.com" target="_blank">欧美成人精品在线观看</a>| <a href="http://caihongie.com" target="_blank">亚洲欧美影音先锋</a>| <a href="http://9797690.com" target="_blank">亚洲精品乱码久久久久久按摩观</a>| <a href="http://91ypp.com" target="_blank">久久黄色小说</a>| <a href="http://160160160.com" target="_blank">亚洲新中文字幕</a>| <a href="http://044925.com" target="_blank">亚洲精品乱码久久久久久日本蜜臀 </a>| <a href="http://994745.com" target="_blank">国产欧美精品一区二区色综合 </a>| <a href="http://0855d.com" target="_blank">国产日韩欧美夫妻视频在线观看</a>| <a href="http://amiee88.com" target="_blank">久久露脸国产精品</a>| <a href="http://ju5556.com" target="_blank">一区二区三区欧美日韩</a>| <a href="http://4466777.com" target="_blank">欧美粗暴jizz性欧美20</a>| <a href="http://668756.com" target="_blank">欧美一区亚洲二区</a>| <a href="http://84172199.com" target="_blank">在线视频免费在线观看一区二区</a>| <a href="http://689992.com" target="_blank">国产亚洲成精品久久</a>| <a href="http://543199.com" target="_blank">国产精品二区在线观看</a>| <a href="http://2502255.com" target="_blank">欧美黄色小视频</a>| <a href="http://411233.com" target="_blank">毛片一区二区</a>| <a href="http://er65.com" target="_blank">久久精品国产999大香线蕉</a>| <a href="http://bjopl.com" target="_blank">亚洲自拍高清</a>| <a href="http://jxjx11.com" target="_blank">亚洲视频视频在线</a>| <a href="http://qdssqt.com" target="_blank">99re8这里有精品热视频免费 </a>| <a href="http://811897.com" target="_blank">国产日韩欧美成人</a>| <a href="http://ynzhuoyi.com" target="_blank">国产精品video</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>