锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品国产三级欧美二区,性欧美暴力猛交另类hd,亚洲伊人观看http://www.shnenglu.com/xpzhou/archive/2007/04/23/22672.html姒曟爲钘?/dc:creator>姒曟爲钘?/author>Mon, 23 Apr 2007 11:51:00 GMThttp://www.shnenglu.com/xpzhou/archive/2007/04/23/22672.htmlhttp://www.shnenglu.com/xpzhou/comments/22672.htmlhttp://www.shnenglu.com/xpzhou/archive/2007/04/23/22672.html#Feedback0http://www.shnenglu.com/xpzhou/comments/commentRss/22672.htmlhttp://www.shnenglu.com/xpzhou/services/trackbacks/22672.htmlVC6.0緙栬瘧鍣ㄥ弬鏁扮殑璁劇疆涓昏閫氳繃VC鐨勮彍鍗曢」Project->Settings->C/C++欏墊潵瀹屾垚銆傛垜浠彲浠ョ湅鍒拌繖涓欏電殑鏈涓嬮潰Project Options涓殑鍐呭錛屼竴鑸涓嬶細

/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Debug/WritingDlgTest.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c

鍚勪釜鍙傛暟浠h〃鐨勬剰涔夛紝鍙互鍙傝僊sdn銆傛瘮濡?nologo琛ㄧず緙栬瘧鏃朵笉鍦ㄨ緭鍑虹獥鍙f樉紺鴻繖浜涜緗紙鎴戜滑鍙互鎶婅繖涓弬鏁板幓鎺夋潵鐪嬬湅鏁堟灉錛夌瓑絳夈備竴鑸垜浠笉浼氱洿鎺ヤ慨鏀硅繖浜涜緗紝鑰屾槸閫氳繃榪欎竴欏墊渶涓婇潰鐨凜ategory涓殑鍚勯」鏉ュ畬鎴?.....
錛嶈漿杞斤紞


涓昏閫氳繃VC鐨勮彍鍗曢」Project->Settings->C/C++欏墊潵瀹屾垚銆傛垜浠彲浠ョ湅鍒拌繖涓欏電殑鏈涓嬮潰Project Options涓殑鍐呭錛屼竴鑸涓嬶細

/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Debug/WritingDlgTest.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c

鍚勪釜鍙傛暟浠h〃鐨勬剰涔夛紝鍙互鍙傝僊sdn銆傛瘮濡?nologo琛ㄧず緙栬瘧鏃朵笉鍦ㄨ緭鍑虹獥鍙f樉紺鴻繖浜涜緗紙鎴戜滑鍙互鎶婅繖涓弬鏁板幓鎺夋潵鐪嬬湅鏁堟灉錛夌瓑絳夈備竴鑸垜浠笉浼氱洿鎺ヤ慨鏀硅繖浜涜緗紝鑰屾槸閫氳繃榪欎竴欏墊渶涓婇潰鐨凜ategory涓殑鍚勯」鏉ュ畬鎴愩?/font>

1) General錛氫竴浜涙諱綋璁劇疆銆?/font>

Warning level銆鐢ㄦ潵鎺у埗璀﹀憡淇℃伅錛屽叾涓璍evel 1鏄渶涓ラ噸鐨勭駭鍒紱
Warnings as errors銆灝嗚鍛婁俊鎭綋浣滈敊璇鐞嗭紱
Optimizations銆浠g爜浼樺寲錛屽彲浠ュ湪Category鐨凮ptimizations欏逛腑榪涜鏇寸粏鐨勮緗紱
Generate browse info銆鐢ㄤ互鐢熸垚.sbr鏂囦歡錛岃褰曠被銆佸彉閲忕瓑絎﹀彿淇℃伅錛屽彲浠ュ湪Category鐨凩isting Files欏逛腑榪涜鏇村鐨勮緗?
Debug info銆鐢熸垚璋冭瘯淇℃伅錛?
None錛屼笉浜х敓浠諱綍璋冭瘯淇℃伅錛堢紪璇戞瘮杈冨揩錛夛紱
Line Numbers Only錛屼粎鐢熸垚鍏ㄥ眬鐨勫拰澶栭儴絎﹀彿鐨勮皟璇曚俊鎭埌.OBJ鏂囦歡鎴?EXE鏂囦歡錛屽噺灝忕洰鏍囨枃浠剁殑灝哄錛?
C 7.0- Compatible錛岃褰曡皟璇曞櫒鐢ㄥ埌鐨勬墍鏈夌鍙蜂俊鎭埌.OBJ鏂囦歡鍜?EXE鏂囦歡錛?
Program Database錛屽垱寤?PDB鏂囦歡璁板綍鎵鏈夎皟璇曚俊鎭紱
Program Database for "Edit & Continue"錛屽垱寤?PDB鏂囦歡璁板綍鎵鏈夎皟璇曚俊鎭紝騫朵笖鏀寔璋冭瘯鏃剁紪杈戙?

2) C++ Language

Pointer-to-member representation銆鐢ㄦ潵璁劇疆綾誨畾涔?寮曠敤鐨勫厛鍚庡叧緋伙細
Best-Case Always錛岃〃紺哄湪寮曠敤綾諱箣鍓嶈綾昏偗瀹氬凡緇忓畾涔夛紱
General-Purpose Always錛岋紵
Point to Any Class
Point to Single- and Multiple-Inheritance Classes
Point to Single-Inheritance Classes
Enable Exception Handling錛岃繘琛屽悓姝ョ殑寮傚父澶勭悊錛?
Enable Run-Time Type Information銆榪嬌緙栬瘧鍣ㄥ鍔犱唬鐮佸湪榪愯鏃惰繘琛屽璞$被鍨嬫鏌ワ紱
Disable Construction Displacements銆璁劇疆綾繪瀯閫?鏋愭瀯鍑芥暟璋冪敤铏氬嚱鏁伴棶棰樸?

3) Code Generation

Processor銆琛ㄧず浠g爜鎸囦護浼樺寲錛屽彲浠ヤ負80386銆?0486銆丳entium銆丳entium Pro錛屾垨鑰匓lend琛ㄧず娣峰悎浠ヤ笂鍚勭浼樺寲銆?
Use run-time library銆鐢ㄤ互鎸囧畾紼嬪簭榪愯鏃朵嬌鐢ㄧ殑榪愯鏃跺簱錛屾湁涓涓師鍒欏氨鏄紝涓涓繘紼嬩笉瑕佸悓鏃朵嬌鐢ㄥ嚑涓増鏈殑榪愯鏃跺簱銆傝繛鎺ヤ簡鍗曠嚎紼嬪簱灝變笉鏀寔澶氱嚎紼嬭皟鐢紝榪炴帴浜嗗綰跨▼搴撳氨瑕佹眰鍒涘緩澶氱嚎紼嬬殑搴旂敤紼嬪簭銆?
Single-Threaded錛屽崟綰跨▼Release鐗堟湰錛岄潤鎬佽繛鎺IBC.LIB搴擄紱
Debug Single-Threaded錛屽崟綰跨▼Debug鐗堟湰錛岄潤鎬佽繛鎺IBCD.LIB搴擄紱
Multithreaded錛屽綰跨▼Release鐗堟湰錛岄潤鎬佽繛鎺IBCMT.LIB搴擄紱
Debug Multithreaded錛屽綰跨▼Debug鐗堟湰錛岄潤鎬佽繛鎺IBCMTD.LIB搴擄紱
Multithreaded DLL錛屽姩鎬佽繛鎺SVCRT.DLL搴擄紱
Debug Multithreaded DLL錛屽姩鎬佽繛鎺SVCRTD.DLL搴撱?
Calling convention銆鍙互鐢ㄦ潵璁懼畾璋冪敤綰﹀畾錛屾湁涓夌錛歘_cdecl銆乢_fastcall鍜宊_stdcall銆?br>銆銆鍚勭璋冪敤綰﹀畾鐨勪富瑕佸尯鍒湪浜庯細1. 鍑芥暟璋冪敤鏃訛紝鍑芥暟鐨勫弬鏁版槸浠庡乏鍒板彸鍘嬪叆鍫嗘爤榪樻槸浠庡彸鍒板乏鍘嬪叆鍫嗘爤錛?. 鍦ㄥ嚱鏁拌繑鍥炴椂錛岀敱鍑芥暟鐨勮皟鐢ㄨ呮潵娓呯悊鍘嬪叆鍫嗘爤鐨勫弬鏁拌繕鏄敱鍑芥暟鏈韓鏉ユ竻鐞嗭紱3. 浠ュ強鍦ㄧ紪璇戞椂瀵瑰嚱鏁板悕榪涜鐨勫懡鍚嶄慨楗幫紙鍙互閫氳繃Listing Files鐪嬪埌鍚勭鍛藉悕淇グ鏂瑰紡錛夈?
Struct member alignment銆鐢ㄤ互鎸囧畾鏁版嵁緇撴瀯涓殑鎴愬憳鍙橀噺鍦ㄥ唴瀛樹腑鏄寜鍑犲瓧鑺傚榻愮殑錛屾牴鎹綆楁満鏁版嵁鎬葷嚎鐨勪綅鏁幫紝涓嶅悓鐨勫榻愭柟寮忓瓨鍙栨暟鎹殑閫熷害涓嶄竴鏍楓傝繖涓弬鏁板鏁版嵁鍖呯綉緇滀紶杈撶瓑搴旂敤灝や負閲嶈錛屼笉鏄瓨鍙栭熷害闂錛岃屾槸鏁版嵁浣嶇殑綺劇‘瀹氫箟闂錛屼竴鑸湪紼嬪簭涓嬌鐢?pragma pack鏉ユ寚瀹氥?

4) Customize

Disable Language Extensions錛岃〃紺轟笉浣跨敤寰蔣涓烘爣鍑咰鍋氱殑璇█鎵╁睍錛?
Eliminate Duplicate Strings錛屼富瑕佺敤浜庡瓧絎︿覆浼樺寲錛堝皢瀛楃涓叉斁鍒扮紦鍏呮睜閲屼互鑺傜渷絀洪棿錛夛紝浣跨敤榪欎釜鍙傛暟錛屼嬌寰?br>            char *sBuffer = "This is a character buffer";
            char *tBuffer = "This is a character buffer";
            sBuffer 鍜宼Buffer鎸囧悜鐨勬槸鍚屼竴鍧楀唴瀛樼┖闂達紱
Enable Function-Level Linking 錛屽憡璇夌紪璇戝櫒灝嗗悇涓嚱鏁版寜鎵撳寘鏍煎紡緙栬瘧錛?
Enables minimal rebuild錛岄氳繃淇濆瓨鍏寵仈淇℃伅鍒?IDB鏂囦歡錛屼嬌緙栬瘧鍣ㄥ彧瀵規渶鏂扮被瀹氫箟鏀瑰姩榪囩殑婧愭枃浠惰繘琛岄噸緙栬瘧錛屾彁楂樼紪璇戦熷害錛?
Enable Incremental Compilation錛屽悓鏍烽氳繃.IDB鏂囦歡淇濆瓨鐨勪俊鎭紝鍙噸緙栬瘧鏈鏂版敼鍔ㄨ繃鐨勫嚱鏁幫紱
Suppress Startup Banner and Information Messages錛岀敤浠ユ帶鍒跺弬鏁版槸鍚﹀湪output紿楀彛杈撳嚭銆?/font>


5) Listing Files

Generate browse info 涓婇潰宸茬粡鎻愬埌榪囥傝繖閲屽彲浠ヨ繘琛屾洿澶氱殑璁劇疆銆?
Exclude Local Variables from Browse Info銆琛ㄧず鏄惁灝嗗眬閮ㄥ彉閲忕殑淇℃伅鏀懼埌.SBR鏂囦歡涓?
Listing file type銆鍙互璁劇疆鐢熸垚鐨勫垪琛ㄤ俊鎭枃浠剁殑鍐呭錛?
Assembly-Only Listing銆浠呯敓鎴愭眹緙栦唬鐮佹枃浠訛紙.ASM鎵╁睍鍚嶏級錛?
Assembly With Machine Code銆鐢熸垚鏈哄櫒浠g爜鍜屾眹緙栦唬鐮佹枃浠訛紙.COD鎵╁睍鍚嶏級錛?
Assembly With Source Code銆鐢熸垚婧愪唬鐮佸拰姹囩紪浠g爜鏂囦歡錛?ASM鎵╁睍鍚嶏級錛?
Assembly, Machine Code, and Source銆鐢熸垚鏈哄櫒鐮併佹簮浠g爜鍜屾眹緙栦唬鐮佹枃浠訛紙.COD鎵╁睍鍚嶏級銆?
Listing file name銆鐢熸垚鐨勪俊鎭枃浠剁殑璺緞錛屼竴鑸負Debug鎴朢elease鐩綍涓嬶紝鐢熸垚鐨勬枃浠跺悕鑷姩鍙栨簮鏂囦歡鐨勬枃浠跺悕銆?

6) Optimizations銆浠g爜浼樺寲璁劇疆銆?/font>

Maximize Speed銆鐢熸垚鏈蹇熺殑浠g爜錛?
Minimize Size銆鐢熸垚鏈灝忓昂瀵哥殑紼嬪簭錛?
Customize銆瀹氬埗浼樺寲銆傚畾鍒剁殑鍐呭鍖呮嫭錛?
Assume No Aliasing錛屼笉浣跨敤鍒悕錛堟彁楂橀熷害錛夛紱
Assume Aliasing Across Function Calls錛屼粎鍑芥暟鍐呴儴涓嶄嬌鐢ㄥ埆鍚嶏紱
Global Optimizations錛屽叏灞浼樺寲錛屾瘮濡傜粡甯哥敤鍒扮殑鍙橀噺浣跨敤瀵勫瓨鍣ㄤ繚瀛橈紝鎴栬呭驚鐜唴鐨勮綆椾紭鍖栵紝濡俰 = -100;while( i < 0 ){顐緄 += x + y;}浼氳浼樺寲涓篿 = -100;t = x + y;while( i < 0 ){i += t;}錛?
Generate Intrinsic Functions錛屼嬌鐢ㄥ唴閮ㄥ嚱鏁版浛鎹竴浜涘嚱鏁拌皟鐢紙鎻愰珮閫熷害錛夛紱
Improve Float Consistency錛屾誕鐐硅繍綆楁柟闈㈢殑浼樺寲錛?
Favor Small Code錛岀▼搴忥紙exe鎴杁ll錛夊昂瀵鎬紭鍖栦紭鍏堜簬浠g爜閫熷害浼樺寲錛?
Favor Fast Code錛岀▼搴忥紙exe鎴杁ll錛変唬鐮侀熷害浼樺寲浼樺厛浜庡昂瀵鎬紭鍖栵紱
Frame-Pointer Omission錛屼笉浣跨敤甯ф寚閽堬紝浠ユ彁楂樺嚱鏁拌皟鐢ㄩ熷害錛?
Full Optimization錛岀粍鍚堜簡鍑犵鍙傛暟錛屼互鐢熸垚鏈蹇殑紼嬪簭浠g爜銆?
Inline function expansion錛屽唴鑱斿嚱鏁版墿灞曠殑涓夌浼樺寲錛堜嬌鐢ㄥ唴鑱斿彲浠ヨ妭鐪佸嚱鏁拌皟鐢ㄧ殑寮閿錛屽姞蹇▼搴忛熷害錛夛細
Disable錛屼笉浣跨敤鍐呰仈錛?
Only __inline錛屼粎鍑芥暟瀹氫箟鍓嶆湁inline鎴朹_inline鏍囪浣跨敤鍐呰仈錛?
Any Suitable錛岄櫎浜唅nline鎴朹_inline鏍囪鐨勫嚱鏁板錛岀紪璇戝櫒"瑙夊緱"搴旇浣跨敤鍐呰仈鐨勫嚱鏁幫紝閮戒嬌鐢ㄥ唴鑱斻?

7) Precompiled Headers銆棰勭紪璇戝ご鏂囦歡鐨勮緗備嬌鐢ㄩ緙栬瘧鍙互鎻愰珮閲嶅緙栬瘧鐨勯熷害銆俈C涓鑸皢涓浜涘叕鍏辯殑銆佷笉澶у彉鍔ㄧ殑澶存枃浠訛紙姣斿afxwin.h絳夛級闆嗕腑鏀懼埌stdafx.h涓紝榪欎竴閮ㄥ垎浠g爜灝變笉蹇呮瘡嬈¢兘閲嶆柊緙栬瘧錛堥櫎闈炴槸Rebuild All錛夈?/font>


8) Preprocessor銆棰勭紪璇戝鐞嗐傚彲浠ュ畾涔?瑙i櫎瀹氫箟涓浜涘父閲忋?/font>

Additional include directories錛屽彲浠ユ寚瀹氶澶栫殑鍖呭惈鐩綍錛屼竴鑸槸鐩稿浜庢湰欏圭洰鐨勭洰褰曪紝濡?.\Include銆?/font>


--------------------------------------------------------------------------------
榪炴帴鍙傛暟鐨勮緗?br>涓昏閫氳繃VC鐨勮彍鍗曢」Project->Settings->Link欏墊潵瀹屾垚銆傛垜浠彲浠ョ湅鍒拌繖涓欏電殑鏈涓嬮潰Project Options涓殑鍐呭錛屼竴鑸涓嬶細

/nologo /subsystem:windows /incremental:yes /pdb:"Debug/WritingDlgTest.pdb" /debug /machine:I386 /out:"Debug/WritingDlgTest.exe" /pdbtype:sept

涓嬮潰鎴戜滑鍒嗗埆鏉ョ湅涓涓婥ategory涓殑鍚勯」璁劇疆銆?/font>

1) General銆涓浜涙諱綋璁劇疆銆傚彲浠ヨ緗敓鎴愮殑鏂囦歡璺緞銆佹枃浠跺悕錛涜繛鎺ョ殑搴撴枃浠訛紱

Generate debug info錛岀敓鎴怐ebug淇℃伅鍒?PDB鏂囦歡錛堝叿浣撴牸寮忓彲浠ュ湪Category->Debug涓緗級錛?
Ignore All Default Libraries錛屾斁寮冩墍鏈夐粯璁ょ殑搴撹繛鎺ワ紱
Link Incrementally錛岄氳繃鐢熸垚. ILK鏂囦歡瀹炵幇閫掑寮忚繛鎺ヤ互鎻愰珮鍚庣畫榪炴帴閫熷害錛屼絾涓鑸繖縐嶆柟寮忎笅鐢熸垚鐨勬枃浠訛紙EXE鎴朌LL錛夎緝澶э紱
Generate Mapfile錛岀敓鎴?MAP鏂囦歡璁板綍妯″潡鐩稿叧淇℃伅錛?
Enable Profiling錛岃繖涓弬鏁伴氬父涓嶨enerate Mapfile鍙傛暟鍚屾椂浣跨敤錛岃屼笖濡傛灉浜х敓Debug淇℃伅鐨勮瘽錛屼笉鑳界敤.PDB鏂囦歡錛岃屼笖蹇呴』鐢∕icrosoft Format銆?

2) Customize銆榪欓噷鍙互榪涜浣跨敤紼嬪簭鏁版嵁搴撴枃浠剁殑璁劇疆銆?/font>

Force File Output錛屽己鍒朵駭鐢熻緭鍑烘枃浠訛紙EXE鎴朌LL錛夛紱
Print Progress Messages錛屽彲浠ュ皢榪炴帴榪囩▼涓殑榪涘害淇℃伅杈撳嚭鍒癘utput紿楀彛銆?

3) Debug銆璁劇疆鏄惁鐢熸垚璋冭瘯淇℃伅錛屼互鍙婅皟璇曚俊鎭殑鏍煎紡銆?/font>

Dubug info錛屾牸寮忓彲浠ユ湁Microsoft Format銆丆OFF Format錛圕ommon Object File Format錛夊拰Both Formats涓夌閫夋嫨錛?
Separate Types錛岃〃紺哄皢Debug鏍煎紡淇℃伅浠ョ嫭绔嬬殑.PDB鏂囦歡瀛樻斁錛岃繕鏄洿鎺ユ斁鍦ㄥ悇涓簮鏂囦歡鐨?PDB鏂囦歡涓傞変腑鐨勮瘽錛岃〃紺洪噰鐢ㄥ悗鑰呯殑鏂瑰紡錛岃繖縐嶆柟寮忚皟璇曞惎鍔ㄦ瘮杈冨揩銆?/font>


4) Input銆榪欓噷鍙互鎸囧畾瑕佽繛鎺ョ殑搴撴枃浠訛紝鏀懼純榪炴帴鐨勫簱鏂囦歡銆傝繕鍙互澧炲姞棰濆鐨勫簱鏂囦歡鐩綍錛屼竴鑸槸鐩稿浜庢湰欏圭洰鐨勭洰褰曪紝濡?.\Lib銆?/font>

Force Symbol References錛屽彲浠ユ寚瀹氳繛鎺ョ壒瀹氱鍙峰畾涔夌殑搴撱?

5) Output銆

Base Address銆鍙互鏀瑰彉紼嬪簭榛樿鐨勫熀鍦板潃錛圗XE鏂囦歡榛樿涓?x400000錛孌LL榛樿涓?x10000000錛夛紝鎿嶄綔緋葷粺瑁呰澆涓涓▼搴忔椂鎬繪槸璇曠潃鍏堜粠榪欎釜鍩哄湴鍧寮濮嬨?
Entry-Point Symbol銆鍙互鎸囧畾紼嬪簭鐨勫叆鍙e湴鍧錛屼竴鑸負涓涓嚱鏁板悕錛堜笖蹇呴』閲囩敤__stdcall璋冪敤綰﹀畾錛夈備竴鑸琖in32鐨勭▼搴忥紝EXE鐨勫叆鍙d負 WinMain錛孌LL鐨勫叆鍙d負DllEntryPoint錛涙渶濂借榪炴帴鍣ㄨ嚜鍔ㄨ緗▼搴忕殑鍏ュ彛鐐廣傞粯璁ゆ儏鍐典笅錛岄氳繃涓涓狢鐨勮繍琛屾椂搴撳嚱鏁版潵瀹炵幇錛氭帶鍒跺彴紼嬪簭閲囩敤mainCRTStartup (鎴杦mainCRTStartup)鍘昏皟鐢ㄧ▼搴忕殑main (鎴杦main)鍑芥暟錛沇indows紼嬪簭閲囩敤WinMainCRTStartup (鎴?wWinMainCRTStartup)璋冪敤紼嬪簭鐨刉inMain (鎴?wWinMain錛屽繀欏婚噰鐢╛_stdcall璋冪敤綰﹀畾)錛汥LL閲囩敤_DllMainCRTStartup璋冪敤DllMain鍑芥暟錛堝繀欏婚噰鐢?__stdcall璋冪敤綰﹀畾錛夈?
Stack allocations銆鐢ㄤ互璁劇疆紼嬪簭浣跨敤鐨勫爢鏍堝ぇ灝忥紙璇蜂嬌鐢ㄥ崄榪涘埗錛夛紝榛樿涓?鍏嗗瓧鑺傘?
Version Information銆鍛婅瘔榪炴帴鍣ㄥ湪EXE鎴朌LL鏂囦歡鐨勫紑濮嬮儴鍒嗘斁涓婄増鏈彿銆?

鍊煎緱娉ㄦ剰鐨勬槸錛?/font>

涓婇潰鍚勪釜鍙傛暟鏄ぇ灝忓啓鏁忔劅鐨勶紱
鍦ㄥ弬鏁板悗鍔犱笂"-"琛ㄧず璇ュ弬鏁版棤鏁堬紱
鍚勪釜鍙傛暟鍊奸夐」鏈?*"鐨勮〃紺轟負璇ュ弬鏁扮殑榛樿鍊鹼紱
鍙互浣跨敤欏靛彸涓婅鐨?Reset"鎸夐挳鏉ユ仮澶嶈欏電殑鎵鏈夐粯璁よ緗?

--------------------------------------------------------------------------------
鍏跺畠涓浜涘弬鏁拌緗?/font>

1) Project->Settings->General錛屽彲浠ヨ緗繛鎺FC搴撶殑鏂瑰紡錛堥潤鎬佹垨鍔ㄦ侊級銆傚鏋滄槸鍔ㄦ佽繛鎺ワ紝鍦∕FC杞歡鍙戝竷鏃朵笉瑕佸繕浜嗗甫涓奙FC鐨凞LL銆?/font>

2) Project->Settings->Debug錛屽彲浠ヨ緗皟璇曟椂榪愯鐨勫彲鎵ц鏂囦歡錛屼互鍙婂懡浠よ鍙傛暟絳夈?/font>

3) Project->Settings->Custom Build錛屽彲浠ヨ緗紪璇?榪炴帴鎴愬姛鍚庤嚜鍔ㄦ墽琛屼竴浜涙搷浣溿傛瘮杈冩湁鐢ㄧ殑鏄紝鍐機OM鏃跺笇鏈沄C瀵圭紪璇戦氳繃鐨凜OM鏂囦歡鑷姩娉ㄥ唽錛屽彲浠ュ涓嬭緗細

Description: Register COM

Commands: regsvr32 /s /c $(TargetPath)

echo regsvr32 exe.time > $(TargetDir)\$(TargetName).trg

Outputs: $(TargetDir)\$(TargetName).trg


4) Tools->Options->Directories錛岃緗郴緇熺殑Include銆丩ibrary璺緞銆?/font>

--------------------------------------------------------------------------------
灝忕獚闂? 欏圭洰涓殑.ncb銆?opt銆?aps銆?clw鏂囦歡浠ュ強Debug銆丷elease鐩綍涓嬬殑鎵鏈夋枃浠墮兘鍙互鍒犳帀鐨勩?/font>



]]>
VC涓熀浜?Windows 鐨勭簿紜畾鏃?/title><link>http://www.shnenglu.com/xpzhou/archive/2007/04/20/22426.html</link><dc:creator>姒曟爲钘?/dc:creator><author>姒曟爲钘?/author><pubDate>Fri, 20 Apr 2007 13:03:00 GMT</pubDate><guid>http://www.shnenglu.com/xpzhou/archive/2007/04/20/22426.html</guid><wfw:comment>http://www.shnenglu.com/xpzhou/comments/22426.html</wfw:comment><comments>http://www.shnenglu.com/xpzhou/archive/2007/04/20/22426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/xpzhou/comments/commentRss/22426.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xpzhou/services/trackbacks/22426.html</trackback:ping><description><![CDATA[鍦ㄥ伐涓氱敓浜ф帶鍒剁郴緇熶腑錛屾湁璁稿闇瑕佸畾鏃跺畬鎴愮殑鎿嶄綔錛屽瀹氭椂鏄劇ず褰撳墠鏃墮棿錛屽畾鏃跺埛鏂板睆騫曚笂鐨勮繘搴︽潯錛屼笂浣?wbr> 鏈哄畾鏃跺悜涓嬩綅鏈哄彂閫佸懡浠ゅ拰浼犻佹暟鎹瓑銆傜壒鍒槸鍦ㄥ鎺у埗鎬ц兘瑕佹眰杈冮珮鐨勫疄鏃舵帶鍒剁郴緇熷拰鏁版嵁閲囬泦緋葷粺涓紝灝辨洿闇瑕佺簿紜畾鏃舵搷浣溿?br>銆銆浼楁墍鍛ㄧ煡錛學indows 鏄熀浜庢秷鎭満鍒剁殑緋葷粺錛屼換浣曚簨浠剁殑鎵ц閮芥槸閫氳繃鍙戦佸拰鎺ユ敹娑堟伅鏉ュ畬鎴愮殑銆?wbr> 榪欐牱灝卞甫鏉ヤ簡涓浜涢棶棰橈紝濡備竴鏃﹁綆楁満鐨凜PU琚煇涓繘紼嬪崰鐢紝鎴栫郴緇熻祫婧愮揣寮犳椂錛屽彂閫佸埌娑堟伅闃熷垪<wbr> 涓殑娑堟伅灝辨殏鏃惰鎸傝搗錛屽緱涓嶅埌瀹炴椂澶勭悊銆傚洜姝わ紝涓嶈兘綆鍗曞湴閫氳繃Windows娑堟伅寮曞彂涓涓瀹氭椂瑕佹眰<wbr> 涓ユ牸鐨勪簨浠躲傚彟澶栵紝鐢變簬鍦╓indows涓凡緇忓皝瑁呬簡璁$畻鏈哄簳灞傜‖浠剁殑璁塊棶錛屾墍浠ワ紝瑕佹兂閫氳繃鐩存帴鍒╃敤<wbr> 璁塊棶紜歡鏉ュ畬鎴愮簿紜畾鏃訛紝涔熸瘮杈冨洶闅俱傛墍浠ュ湪瀹為檯搴旂敤鏃訛紝搴旈拡瀵瑰叿浣撳畾鏃剁簿搴︾殑瑕佹眰錛岄噰鍙栫浉閫?搴旂殑瀹氭椂鏂規硶銆?br>銆銆VC涓彁渚涗簡寰堝鍏充簬鏃墮棿鎿嶄綔鐨勫嚱鏁幫紝鍒╃敤瀹冧滑鎺у埗紼嬪簭鑳藉綺劇‘鍦板畬鎴愬畾鏃跺拰璁℃椂鎿嶄綔銆傛湰鏂囪緇嗕粙緇嶄簡<wbr> VC涓熀浜嶹indows鐨勭簿紜畾鏃剁殑涓冪鏂瑰紡錛屽涓嬪浘鎵紺猴細<br><br><img src="http://www.vckbase.com/document/journal/vckbase37/images/MultiTimerDemoimg.gif" border=0><br>鍥句竴 鍥懼儚鎻忚堪 <br><br>銆銆鏂瑰紡涓錛歏C涓殑WM_TIMER娑堟伅鏄犲皠鑳借繘琛岀畝鍗曠殑鏃墮棿鎺у埗銆傞鍏堣皟鐢ㄥ嚱鏁癝etTimer()璁劇疆瀹氭椂<wbr> 闂撮殧錛屽SetTimer(0,200,NULL)鍗充負璁劇疆200ms鐨勬椂闂撮棿闅斻傜劧鍚庡湪搴旂敤紼嬪簭涓鍔犲畾鏃跺搷搴斿嚱鏁?wbr> OnTimer()錛屽茍鍦ㄨ鍑芥暟涓坊鍔犲搷搴旂殑澶勭悊璇彞錛岀敤鏉ュ畬鎴愬埌杈懼畾鏃舵椂闂寸殑鎿嶄綔銆傝繖縐嶅畾鏃舵柟娉曢潪甯?wbr> 綆鍗曪紝鍙互瀹炵幇涓瀹氱殑瀹氭椂鍔熻兘錛屼絾鍏跺畾鏃跺姛鑳藉鍚孲leep()鍑芥暟鐨勫歡鏃跺姛鑳戒竴鏍鳳紝綺懼害闈炲父浣庯紝鏈灝?wbr> 璁℃椂綺懼害浠呬負30ms錛孋PU鍗犵敤浣庯紝涓斿畾鏃跺櫒娑堟伅鍦ㄥ浠誨姟鎿嶄綔緋葷粺涓殑浼樺厛綰у緢浣庯紝涓嶈兘寰楀埌鍙婃椂鍝?wbr> 搴旓紝寰寰涓嶈兘婊¤凍瀹炴椂鎺у埗鐜涓嬬殑搴旂敤銆傚彧鍙互鐢ㄦ潵瀹炵幇璇稿浣嶅浘鐨勫姩鎬佹樉紺虹瓑瀵瑰畾鏃剁簿搴﹁姹備笉楂樼殑鎯呭喌銆傚紺轟緥宸ョ▼涓殑Timer1銆?<br>銆銆鏂瑰紡浜岋細VC涓嬌鐢╯leep()鍑芥暟瀹炵幇寤舵椂錛屽畠鐨勫崟浣嶆槸ms錛屽寤舵椂2縐掞紝鐢╯leep(2000)銆傜簿搴﹂潪甯?wbr> 浣庯紝鏈灝忚鏃剁簿搴︿粎涓?0ms錛岀敤sleep鍑芥暟鐨勪笉鍒╁鍦ㄤ簬寤舵椂鏈熼棿涓嶈兘澶勭悊鍏朵粬鐨勬秷鎭紝濡傛灉鏃墮棿澶?wbr> 闀匡紝灝卞ソ璞℃鏈轟竴鏍鳳紝CPU鍗犵敤鐜囬潪甯擱珮錛屽彧鑳界敤浜庤姹備笉楂樼殑寤舵椂紼嬪簭涓傚紺轟緥宸ョ▼涓殑Timer2銆?br>銆銆鏂瑰紡涓夛細鍒╃敤COleDateTime綾誨拰COleDateTimeSpan綾葷粨鍚圵INDOWS鐨勬秷鎭鐞嗚繃紼嬫潵瀹炵幇縐掔駭寤舵椂銆傚紺轟緥宸ョ▼涓殑Timer3鍜孴imer3_1銆備互涓嬫槸瀹炵幇2縐掔殑寤舵椂浠g爜錛?<br>COleDateTime      start_time = COleDateTime::GetCurrentTime();<br>COleDateTimeSpan  end_time= COleDateTime::GetCurrentTime()-start_time;<br>while(end_time.GetTotalSeconds()< 2) //瀹炵幇寤舵椂2縐?br>{<br>MSG   msg;<br>GetMessage(&msg,NULL,0,0);<br>TranslateMessage(&msg);<br>DispatchMessage(&msg);<br>//浠ヤ笂鍥涜鏄疄鐜板湪寤舵椂鎴栧畾鏃舵湡闂磋兘澶勭悊鍏朵粬鐨勬秷鎭紝<br>//铏界劧榪欐牱鍙互闄嶄綆CPU鐨勫崰鏈夌巼錛?br>//浣嗛檷浣庝簡寤舵椂鎴栧畾鏃剁簿搴︼紝瀹為檯搴旂敤涓彲浠ュ幓鎺夈?br>end_time = COleDateTime::GetCurrentTime()-start_time;<br>}//榪欐牱鍦ㄥ歡鏃剁殑鏃跺欐垜浠篃鑳藉澶勭悊鍏朵粬鐨勬秷鎭?nbsp;     銆銆鏂瑰紡鍥涳細鍦ㄧ簿搴﹁姹傝緝楂樼殑鎯呭喌涓嬶紝VC涓彲浠ュ埄鐢℅etTickCount()鍑芥暟錛岃鍑芥暟鐨勮繑鍥炲兼槸<wbr>  DWORD鍨嬶紝琛ㄧず浠s涓哄崟浣嶇殑璁$畻鏈哄惎鍔ㄥ悗緇忓巻鐨勬椂闂撮棿闅斻傜簿搴︽瘮WM_TIMER娑堟伅鏄犲皠楂橈紝鍦ㄨ緝<wbr> 鐭殑瀹氭椂涓叾璁℃椂璇樊涓?5ms錛屽湪杈冮暱鐨勫畾鏃朵腑鍏惰鏃惰宸緝浣庯紝濡傛灉瀹氭椂鏃墮棿澶暱錛屽氨濂借薄姝繪満涓鏍鳳紝CPU鍗犵敤鐜囬潪甯擱珮錛屽彧鑳界敤浜庤姹備笉楂樼殑寤舵椂紼嬪簭涓傚紺轟緥宸ョ▼涓殑Timer4鍜孴imer4_1銆備笅鍒椾唬鐮佸彲浠ュ疄鐜?0ms鐨勭簿紜畾鏃訛細<br> <pre>DWORD dwStart = GetTickCount(); DWORD dwEnd = dwStart; do { dwEnd = GetTickCount()-dwStart; }while(dwEnd <50);</pre> 涓轟嬌GetTickCount()鍑芥暟鍦ㄥ歡鏃舵垨瀹氭椂鏈熼棿鑳藉鐞嗗叾浠栫殑娑堟伅錛屽彲浠ユ妸浠g爜鏀逛負錛?br> <pre>DWORD dwStart = GetTickCount(); DWORD dwEnd = dwStart; do { MSG msg; GetMessage(&msg,NULL,0,0); TranslateMessage(&msg); DispatchMessage(&msg); dwEnd = GetTickCount()-dwStart; }while(dwEnd <50);</pre> 铏界劧榪欐牱鍙互闄嶄綆CPU鐨勫崰鏈夌巼錛屽茍鍦ㄥ歡鏃舵垨瀹氭椂鏈熼棿涔熻兘澶勭悊鍏朵粬鐨勬秷鎭紝浣嗛檷浣庝簡寤舵椂鎴栧畾鏃剁簿搴︺?br>銆銆鏂瑰紡浜旓細涓嶨etTickCount()鍑芥暟綾諱技鐨勫濯掍綋瀹氭椂鍣ㄥ嚱鏁癉WORD timeGetTime(void)錛岃鍑芥暟瀹氭椂綺?wbr> 搴︿負ms綰э紝榪斿洖浠嶹indows鍚姩寮濮嬬粡榪囩殑姣鏁般傚井杞叕鍙稿湪鍏跺濯掍綋Windows涓彁渚涗簡綺劇‘瀹氭椂鍣ㄧ殑搴?wbr> 灞侫PI鎸侊紝鍒╃敤澶氬獟浣撳畾鏃跺櫒鍙互寰堢簿紜湴璇誨嚭緋葷粺鐨勫綋鍓嶆椂闂達紝騫朵笖鑳藉湪闈炲父綺劇‘鐨勬椂闂撮棿闅斿唴瀹屾垚涓<wbr> 涓簨浠躲佸嚱鏁版垨榪囩▼鐨勮皟鐢ㄣ備笉鍚屼箣澶勫湪浜庤皟鐢―WORD timeGetTime(void) 鍑芥暟涔嬪墠蹇呴』灝?Winmm.lib <wbr> 鍜?Mmsystem.h 娣誨姞鍒板伐紼嬩腑錛屽惁鍒欏湪緙栬瘧鏃舵彁紺篋WORD timeGetTime(void)鍑芥暟鏈畾涔夈傜敱浜庝嬌鐢ㄨ<wbr> 鍑芥暟鏄氳繃鏌ヨ鐨勬柟寮忚繘琛屽畾鏃舵帶鍒剁殑錛屾墍浠ワ紝搴旇寤虹珛瀹氭椂寰幆鏉ヨ繘琛屽畾鏃朵簨浠剁殑鎺у埗銆傚紺轟緥宸ョ▼涓殑Timer5鍜孴imer5_1銆?br>銆銆鏂瑰紡鍏細浣跨敤澶氬獟浣撳畾鏃跺櫒timeSetEvent()鍑芥暟錛岃鍑芥暟瀹氭椂綺懼害涓簃s綰с傚埄鐢ㄨ鍑芥暟鍙互瀹炵幇鍛ㄦ湡鎬х殑鍑芥暟璋冪敤銆傚紺轟緥宸ョ▼涓殑Timer6鍜孴imer6_1銆傚嚱鏁扮殑鍘熷瀷濡備笅錛?<br> <pre>MMRESULT timeSetEvent錛?UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, WORD dwUser, UINT fuEvent 錛?/pre> 銆銆璇ュ嚱鏁拌緗竴涓畾鏃跺洖璋冧簨浠訛紝姝や簨浠跺彲浠ユ槸涓涓竴嬈℃т簨浠舵垨鍛ㄦ湡鎬т簨浠躲備簨浠朵竴鏃﹁嬋媧伙紝渚胯皟鐢ㄦ寚瀹氱殑鍥炶皟鍑芥暟錛?wbr> 鎴愬姛鍚庤繑鍥炰簨浠剁殑鏍囪瘑絎︿唬鐮侊紝鍚﹀垯榪斿洖NULL銆傚嚱鏁扮殑鍙傛暟璇存槑濡備笅錛?br> <pre>uDelay錛氫互姣鎸囧畾浜嬩歡鐨勫懆鏈熴? Uresolution錛氫互姣鎸囧畾寤舵椂鐨勭簿搴︼紝鏁板艱秺灝忓畾鏃跺櫒浜嬩歡鍒嗚鯨鐜囪秺楂樸傜己鐪佸間負1ms銆? LpTimeProc錛氭寚鍚戜竴涓洖璋冨嚱鏁般? DwUser錛氬瓨鏀劇敤鎴鋒彁渚涚殑鍥炶皟鏁版嵁銆? FuEvent錛氭寚瀹氬畾鏃跺櫒浜嬩歡綾誨瀷錛? TIME_ONESHOT錛歶Delay姣鍚庡彧浜х敓涓嬈′簨浠? TIME_PERIODIC 錛氭瘡闅攗Delay姣鍛ㄦ湡鎬у湴浜х敓浜嬩歡銆? </pre> 銆銆鍏蜂綋搴旂敤鏃訛紝鍙互閫氳繃璋冪敤timeSetEvent()鍑芥暟錛屽皢闇瑕佸懆鏈熸ф墽琛岀殑浠誨姟瀹氫箟鍦↙pTimeProc鍥炶皟鍑芥暟<wbr> 涓?濡傦細瀹氭椂閲囨牱銆佹帶鍒剁瓑)錛屼粠鑰屽畬鎴愭墍闇澶勭悊鐨勪簨浠躲傞渶瑕佹敞鎰忕殑鏄紝浠誨姟澶勭悊鐨勬椂闂翠笉鑳藉ぇ浜庡懆鏈熼棿闅旀椂闂淬傚彟澶栵紝鍦ㄥ畾鏃跺櫒浣跨敤瀹屾瘯鍚庯紝<wbr> 搴斿強鏃惰皟鐢╰imeKillEvent()灝嗕箣閲婃斁銆?<br>銆銆鏂瑰紡涓冿細瀵逛簬綺劇‘搴﹁姹傛洿楂樼殑瀹氭椂鎿嶄綔錛屽垯搴旇浣跨敤QueryPerformanceFrequency()鍜?wbr> QueryPerformanceCounter()鍑芥暟銆傝繖涓や釜鍑芥暟鏄疺C鎻愪緵鐨勪粎渚沇indows 95鍙婂叾鍚庣畫鐗堟湰浣跨敤鐨勭簿紜椂闂村嚱鏁幫紝騫惰姹傝綆楁満浠庣‖浠朵笂鏀寔綺劇‘瀹氭椂鍣ㄣ傚紺轟緥宸ョ▼涓殑Timer7銆乀imer7_1銆乀imer7_2銆乀imer7_3銆?br>QueryPerformanceFrequency()鍑芥暟鍜孮ueryPerformanceCounter()鍑芥暟鐨勫師鍨嬪涓嬶細<br> <pre>BOOL QueryPerformanceFrequency(LARGE_INTEGER 錛妉pFrequency); BOOL QueryPerformanceCounter(LARGE_INTEGER 錛妉pCount);</pre> 銆銆鏁版嵁綾誨瀷ARGE_INTEGER鏃㈠彲浠ユ槸涓涓?瀛楄妭闀跨殑鏁村瀷鏁幫紝涔熷彲浠ユ槸涓や釜4瀛楄妭闀跨殑鏁村瀷鏁扮殑鑱斿悎緇撴瀯錛?wbr> 鍏跺叿浣撶敤娉曟牴鎹紪璇戝櫒鏄惁鏀寔64浣嶈屽畾銆傝綾誨瀷鐨勫畾涔夊涓嬶細<br> <pre>typedef union _LARGE_INTEGER { struct { DWORD LowPart ;// 4瀛楄妭鏁村瀷鏁? LONG HighPart;// 4瀛楄妭鏁村瀷鏁? }; LONGLONG QuadPart ;// 8瀛楄妭鏁村瀷鏁? }LARGE_INTEGER ;</pre> 銆銆鍦ㄨ繘琛屽畾鏃朵箣鍓嶏紝鍏堣皟鐢≦ueryPerformanceFrequency()鍑芥暟鑾峰緱鏈哄櫒鍐呴儴瀹氭椂鍣ㄧ殑鏃墮挓棰戠巼錛?wbr> 鐒跺悗鍦ㄩ渶瑕佷弗鏍煎畾鏃剁殑浜嬩歡鍙戠敓涔嬪墠鍜屽彂鐢熶箣鍚庡垎鍒皟鐢≦ueryPerformanceCounter()鍑芥暟錛屽埄鐢ㄤ袱嬈¤幏寰楃殑璁℃暟涔嬪樊鍙婃椂閽熼鐜囷紝璁$畻鍑轟簨浠剁粡<wbr> 鍘嗙殑綺劇‘鏃墮棿銆備笅鍒椾唬鐮佸疄鐜?ms鐨勭簿紜畾鏃訛細<br> <pre>LARGE_INTEGER litmp; LONGLONG QPart1,QPart2; double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp); dfFreq = (double)litmp.QuadPart;// 鑾峰緱璁℃暟鍣ㄧ殑鏃墮挓棰戠巼 QueryPerformanceCounter(&litmp); QPart1 = litmp.QuadPart;// 鑾峰緱鍒濆鍊? do { QueryPerformanceCounter(&litmp); QPart2 = litmp.QuadPart;//鑾峰緱涓鍊? dfMinus = (double)(QPart2-QPart1); dfTim = dfMinus / dfFreq;// 鑾峰緱瀵瑰簲鐨勬椂闂村鹼紝鍗曚綅涓虹 }while(dfTim<0.001);</pre> 銆銆鍏跺畾鏃惰宸笉瓚呰繃1寰錛岀簿搴︿笌CPU絳夋満鍣ㄩ厤緗湁鍏熾?涓嬮潰鐨勭▼搴忕敤鏉ユ祴璇曞嚱鏁癝leep(100)鐨勭簿紜寔緇椂闂達細<br> <pre>LARGE_INTEGER litmp; LONGLONG QPart1,QPart2; double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp); dfFreq = (double)litmp.QuadPart;// 鑾峰緱璁℃暟鍣ㄧ殑鏃墮挓棰戠巼 QueryPerformanceCounter(&litmp); QPart1 = litmp.QuadPart;// 鑾峰緱鍒濆鍊? Sleep(100); QueryPerformanceCounter(&litmp); QPart2 = litmp.QuadPart;//鑾峰緱涓鍊? dfMinus = (double)(QPart2-QPart1); dfTim = dfMinus / dfFreq;// 鑾峰緱瀵瑰簲鐨勬椂闂村鹼紝鍗曚綅涓虹 </pre> 銆銆鐢變簬Sleep()鍑芥暟鑷韓鐨勮宸紝涓婅堪紼嬪簭姣忔鎵ц鐨勭粨鏋滈兘浼氭湁寰皬璇樊銆備笅鍒椾唬鐮佸疄鐜?寰鐨勭簿紜畾鏃訛細<br> <pre>LARGE_INTEGER litmp; LONGLONG QPart1,QPart2; double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp); dfFreq = (double)litmp.QuadPart;// 鑾峰緱璁℃暟鍣ㄧ殑鏃墮挓棰戠巼 QueryPerformanceCounter(&litmp); QPart1 = litmp.QuadPart;// 鑾峰緱鍒濆鍊? do { QueryPerformanceCounter(&litmp); QPart2 = litmp.QuadPart;//鑾峰緱涓鍊? dfMinus = (double)(QPart2-QPart1); dfTim = dfMinus / dfFreq;// 鑾峰緱瀵瑰簲鐨勬椂闂村鹼紝鍗曚綅涓虹 }while(dfTim<0.000001);</pre> 鍏跺畾鏃惰宸竴鑸笉瓚呰繃0.5寰錛岀簿搴︿笌CPU絳夋満鍣ㄩ厤緗湁鍏熾?br> <p><a >紺轟緥宸ョ▼涓嬭澆</a><br><br></p><img src ="http://www.shnenglu.com/xpzhou/aggbug/22426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xpzhou/" target="_blank">姒曟爲钘?/a> 2007-04-20 21:03 <a href="http://www.shnenglu.com/xpzhou/archive/2007/04/20/22426.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>STL瀹炶返鎸囧崡http://www.shnenglu.com/xpzhou/archive/2007/04/20/22341.html姒曟爲钘?/dc:creator>姒曟爲钘?/author>Fri, 20 Apr 2007 00:18:00 GMThttp://www.shnenglu.com/xpzhou/archive/2007/04/20/22341.htmlhttp://www.shnenglu.com/xpzhou/comments/22341.htmlhttp://www.shnenglu.com/xpzhou/archive/2007/04/20/22341.html#Feedback0http://www.shnenglu.com/xpzhou/comments/commentRss/22341.htmlhttp://www.shnenglu.com/xpzhou/services/trackbacks/22341.html浠嬬粛
榪欐槸涓綃囨寚瀵兼偍濡備綍鍦∕icrosoft Visual Studio涓嬪涔燬TL騫惰繘琛屽疄璺電殑鏂囩珷銆傝繖綃囨枃绔犱粠STL鐨勫熀紜鐭ヨ瘑璁茶搗錛屽驚搴忔笎榪涳紝閫愭娣卞叆錛屾秹鍙婂埌浜哠TL緙栧啓浠g爜鐨勬柟娉曘丼TL浠g爜鐨勭紪璇戝拰璋冭瘯銆佸懡鍚嶇┖闂達紙namespace錛夈丼TL涓殑ANSI / ISO瀛楃涓層佸悇縐嶄笉鍚岀被鍨嬬殑瀹瑰櫒錛坈ontainer錛夈佹ā鏉匡紙template錛夈佹父鏍囷紙Iterator錛夈佺畻娉曪紙Algorithms錛夈佸垎閰嶅櫒錛圓llocator錛夈佸鍣ㄧ殑宓屽絳夋柟闈㈢殑闂錛屼綔鑰呭湪榪欑瘒鏂囩珷涓璇昏呮彁鍑轟簡涓浜涘緩璁紝騫舵寚鍑轟簡浣跨敤STL鏃跺簲璇ユ敞鎰忕殑闂銆傝繖綃囨枃绔犺鐩栭潰騫匡紝瑙嗚鍏ㄩ潰銆備笉浠呬粎閫傚悎鍒濆鑰呭涔燬TL錛屾洿鏄箍澶ц鑰呬嬌鐢⊿TL緙栫▼鐨勫疄璺墊寚鍗椼?


榪欐槸涓綃囨寚瀵兼偍濡備綍鍦∕icrosoft Visual Studio涓嬪涔燬TL騫惰繘琛屽疄璺電殑鏂囩珷銆傝繖綃囨枃绔犱粠STL鐨勫熀紜鐭ヨ瘑璁茶搗錛屽驚搴忔笎榪涳紝閫愭娣卞叆錛屾秹鍙婂埌浜哠TL緙栧啓浠g爜鐨勬柟娉曘丼TL浠g爜鐨勭紪璇戝拰璋冭瘯銆佸懡鍚嶇┖闂達紙namespace錛夈丼TL涓殑ANSI / ISO瀛楃涓層佸悇縐嶄笉鍚岀被鍨嬬殑瀹瑰櫒錛坈ontainer錛夈佹ā鏉匡紙template錛夈佹父鏍囷紙Iterator錛夈佺畻娉曪紙Algorithms錛夈佸垎閰嶅櫒錛圓llocator錛夈佸鍣ㄧ殑宓屽絳夋柟闈㈢殑闂錛屼綔鑰呭湪榪欑瘒鏂囩珷涓璇昏呮彁鍑轟簡涓浜涘緩璁紝騫舵寚鍑轟簡浣跨敤STL鏃跺簲璇ユ敞鎰忕殑闂銆傝繖綃囨枃绔犺鐩栭潰騫匡紝瑙嗚鍏ㄩ潰銆備笉浠呬粎閫傚悎鍒濆鑰呭涔燬TL錛屾洿鏄箍澶ц鑰呬嬌鐢⊿TL緙栫▼鐨勫疄璺墊寚鍗椼?br>
STL綆浠?br>
STL (鏍囧噯妯$増搴擄紝Standard Template Library)鏄綋浠婃瘡涓粠浜婥++緙栫▼鐨勪漢闇瑕佹帉鎻$殑涓欏逛笉閿欑殑鎶鏈傛垜瑙夊緱姣忎竴涓垵瀛TL鐨勪漢搴旇鑺辮垂涓孌墊椂闂存潵鐔熸倝瀹冿紝姣斿錛屽涔燬TL鏃朵細鏈夋ュ墽鍗囬檷鐨勫涔犳洸綰匡紝騫朵笖鏈変竴浜涘懡鍚嶆槸涓嶅お瀹規槗鍑洿瑙夊氨鑳藉璁頒綇鐨勶紙涔熻鏄ソ璁扮殑鍚嶅瓧宸茬粡琚敤鍏変簡錛夛紝鐒惰屽鏋滀竴鏃︿綘鎺屾彙浜哠TL錛屼綘灝變笉浼氳寰楀ご鐥涗簡銆傚拰MFC鐩告瘮錛孲TL鏇村姞澶嶆潅鍜屽己澶с?br>STL鏈変互涓嬬殑涓浜涗紭鐐癸細

鍙互鏂逛究瀹規槗鍦板疄鐜版悳绱㈡暟鎹垨瀵規暟鎹帓搴忕瓑涓緋誨垪鐨勭畻娉曪紱

璋冭瘯紼嬪簭鏃舵洿鍔犲畨鍏ㄥ拰鏂逛究錛?br>
鍗充嬌鏄漢浠敤STL鍦║NIX騫沖彴涓嬪啓鐨勪唬鐮佷綘涔熷彲浠ュ緢瀹規槗鍦扮悊瑙o紙鍥犱負STL鏄法騫沖彴鐨勶級銆?br>
鑳屾櫙鐭ヨ瘑

鍐欒繖涓閮ㄥ垎鏄涓浜涘垵瀛﹁綆楁満鐨勮鑰呭湪瀵屾湁鎸戞垬鎬х殑璁$畻鏈虹瀛﹂鍩熸湁涓涓壇濂界殑寮绔紝鑰屼笉蹇呰垂鍔涘湴浜嗚В閭f棤絀鋒棤灝界殑琛岃瘽鏈鍜屾矇闂風殑瑙勫垯錛屽湪榪欓噷浠呬粎鎶婇偅浜涜璇濆拰瑙勫垯褰撲綔STLer浠敤浜庤嚜濞辯殑鍒涢犲搧鍚с?br>
浣跨敤浠g爜
鏈枃浣跨敤鐨勪唬鐮佸湪STL瀹炶返涓富瑕佸叿鏈夋寚瀵兼剰涔夈?br>
涓浜涘熀紜姒傚康鐨勫畾涔?br>
妯℃澘錛圱emplate錛夆斺旂被錛堜互鍙婄粨鏋勭瓑鍚勭鏁版嵁綾誨瀷鍜屽嚱鏁幫級鐨勫畯錛坢acro錛夈傛湁鏃跺彨鍋氱敎楗煎垏鍓叉満錛坈ookie cutter錛夛紝姝h鐨勫悕縐板簲鍙仛鑼冨瀷錛坓eneric錛夆斺斾竴涓被鐨勬ā鏉垮彨鍋氳寖鍨嬬被錛坓eneric class錛夛紝鑰屼竴涓嚱鏁扮殑妯℃澘涔熻嚜鐒惰岀劧鍦拌鍙仛鑼冨瀷鍑芥暟錛坓eneric function錛夈?br>STL鈥斺旀爣鍑嗘ā鏉垮簱錛屼竴浜涜仾鏄庝漢鍐欑殑涓浜涙ā鏉匡紝鐜板湪宸叉垚涓烘瘡涓漢鎵浣跨敤鐨勬爣鍑咰++璇█涓殑涓閮ㄥ垎銆?br>瀹瑰櫒錛圕ontainer錛夆斺斿彲瀹圭撼涓浜涙暟鎹殑妯℃澘綾匯係TL涓湁vector錛宻et錛宮ap錛宮ultimap鍜宒eque絳夊鍣ㄣ?br>鍚戦噺錛圴ector錛夆斺斿熀鏈暟緇勬ā鏉匡紝榪欐槸涓涓鍣ㄣ?br>娓告爣錛圛terator錛夆斺旇繖鏄竴涓鐗圭殑涓滆タ錛屽畠鏄竴涓寚閽堬紝鐢ㄦ潵鎸囧悜STL瀹瑰櫒涓殑鍏冪礌錛屼篃鍙互鎸囧悜鍏跺畠鐨勫厓绱犮?br>
Hello World紼嬪簭

鎴戞効鎰忓湪鎴戠殑榛勯噾鏃墮棿鍦ㄨ繖閲屽啓涓嬫垜鐨勭▼搴忥細涓涓猦ello world紼嬪簭銆傝繖涓▼搴忓皢涓涓瓧絎︿覆浼犻佸埌涓涓瓧絎﹀悜閲忎腑錛岀劧鍚庢瘡嬈℃樉紺哄悜閲忎腑鐨勪竴涓瓧絎︺傚悜閲忓氨鍍忔槸鐩涙斁鍙橀暱鏁扮粍鐨勮姳鍥紝澶х害鎵鏈塖TL瀹瑰櫒涓湁涓鍗婃槸鍩轟簬鍚戦噺鐨勶紝濡傛灉浣犳帉鎻′簡榪欎釜紼嬪簭錛屼綘渚垮樊涓嶅鎺屾彙浜嗘暣涓猄TL鐨勪竴鍗婁簡銆?br>

//紼嬪簭錛歷ector婕旂ず涓
//鐩殑錛氱悊瑙TL涓殑鍚戦噺

// #include "stdafx.h" -濡傛灉浣犱嬌鐢ㄩ緙栬瘧鐨勫ご鏂囦歡灝卞寘鍚繖涓ご鏂囦歡
#include <vector>  // STL鍚戦噺鐨勫ご鏂囦歡銆傝繖閲屾病鏈?.h"銆?br>#include <iostream>  // 鍖呭惈cout瀵硅薄鐨勫ご鏂囦歡銆?br>using namespace std;  //淇濊瘉鍦ㄧ▼搴忎腑鍙互浣跨敤std鍛藉悕絀洪棿涓殑鎴愬憳銆?br>
char* szHW = "Hello World";  
//榪欐槸涓涓瓧絎︽暟緇勶紝浠?#8221;\0”緇撴潫銆?br>
int main(int argc, char* argv[])
{
  vector <char> vec;  //澹版槑涓涓瓧絎﹀悜閲弙ector (STL涓殑鏁扮粍)

  //涓哄瓧絎︽暟緇勫畾涔変竴涓父鏍噄terator銆?br>  vector <char>::iterator vi;

  //鍒濆鍖栧瓧絎﹀悜閲忥紝瀵規暣涓瓧絎︿覆榪涜寰幆錛?br>  //鐢ㄦ潵鎶婃暟鎹~鏀懼埌瀛楃鍚戦噺涓紝鐩村埌閬囧埌”\0”鏃剁粨鏉熴?br>  char* cptr = szHW;  // 灝嗕竴涓寚閽堟寚鍚?#8220;Hello World”瀛楃涓?br>  while (*cptr != '\0')
  {  vec.push_back(*cptr);  cptr++;  }
  // push_back鍑芥暟灝嗘暟鎹斁鍦ㄥ悜閲忕殑灝鵑儴銆?br>
  // 灝嗗悜閲忎腑鐨勫瓧絎︿竴涓釜鍦版樉紺哄湪鎺у埗鍙?br>  for (vi=vec.begin(); vi!=vec.end(); vi++)  
  // 榪欐槸STL寰幆鐨勮鑼冨寲鐨勫紑濮嬧斺旈氬父鏄?"!=" 錛?鑰屼笉鏄?"<"
  // 鍥犱負"<" 鍦ㄤ竴浜涘鍣ㄤ腑娌℃湁瀹氫箟銆?
  // begin()榪斿洖鍚戦噺璧峰鍏冪礌鐨勬父鏍囷紙iterator錛夛紝end()榪斿洖鍚戦噺鏈熬鍏冪礌鐨勬父鏍囷紙iterator錛夈?br>  {  cout << *vi;  }  // 浣跨敤榪愮畻絎?“*” 灝嗘暟鎹粠娓告爣鎸囬拡涓彁鍙栧嚭鏉ャ?br>  cout << endl;  // 鎹㈣

  return 0;
}


push_back鏄皢鏁版嵁鏀懼叆vector錛堝悜閲忥級鎴杁eque錛堝弻绔槦鍒楋級鐨勬爣鍑嗗嚱鏁般侷nsert鏄竴涓笌涔嬬被浼肩殑鍑芥暟錛岀劧鑰屽畠鍦ㄦ墍鏈夊鍣ㄤ腑閮藉彲浠ヤ嬌鐢紝浣嗘槸鐢ㄦ硶鏇村姞澶嶆潅銆俥nd()瀹為檯涓婃槸鍙栨湯灝懼姞涓錛堝彇瀹瑰櫒涓湯灝劇殑鍓嶄竴涓厓绱狅級錛屼互渚胯寰幆姝g‘榪愯鈥斺斿畠榪斿洖鐨勬寚閽堟寚鍚戞渶闈犺繎鏁扮粍鐣岄檺鐨勬暟鎹傚氨鍍忔櫘閫氬驚鐜腑鐨勬暟緇勶紝姣斿for (i=0; i<6; i++) {ar[i] = i;} 鈥斺攁r[6]鏄笉瀛樺湪鐨勶紝鍦ㄥ驚鐜腑涓嶄細杈懼埌榪欎釜鍏冪礌錛屾墍浠ュ湪寰幆涓笉浼氬嚭鐜伴棶棰樸?br>
STL鐨勭儲鎭間箣涓鈥斺斿垵濮嬪寲

STL浠や漢鐑︽伡鐨勫湴鏂規槸鍦ㄥ畠鍒濆鍖栫殑鏃跺欍係TL涓鍣ㄧ殑鍒濆鍖栨瘮C/C++鏁扮粍鍒濆鍖栬楹葷儲鐨勫銆備綘鍙兘涓涓厓绱犱竴涓厓绱犲湴鏉ワ紝鎴栬呭厛鍒濆鍖栦竴涓櫘閫氭暟緇勫啀閫氳繃杞寲濉斁鍒板鍣ㄤ腑銆傛垜璁や負浜轟滑閫氬父鍙互榪欐牱鍋氾細


//紼嬪簭錛氬垵濮嬪寲婕旂ず
//鐩殑錛氫負浜嗚鏄嶴TL涓殑鍚戦噺鏄庢牱鍒濆鍖栫殑銆?br>
#include <cstring>  // <cstring>鍜?lt;string.h>鐩稿悓
#include <vector>
using namespace std;

int ar[10] = {  12, 45, 234, 64, 12, 35, 63, 23, 12, 55  };
char* str = "Hello World";

int main(int argc, char* argv[])
{
  vector <int> vec1(ar, ar+10);
  vector <char> vec2(str, str+strlen(str));
  return 0;
}



鍦ㄧ紪紼嬩腑錛屾湁寰堝縐嶆柟娉曟潵瀹屾垚鍚屾牱鐨勫伐浣溿傚彟涓縐嶅~鍏呭悜閲忕殑鏂規硶鏄敤鏇村姞鐔熸倝鐨勬柟鎷彿錛屾瘮濡備笅闈㈢殑紼嬪簭錛?br>
//紼嬪簭錛歷ector婕旂ず浜?br>//鐩殑錛氱悊瑙e甫鏈夋暟緇勪笅鏍囧拰鏂規嫭鍙風殑STL鍚戦噺

#include <cstring>
#include <vector>
#include <iostream>
using namespace std;

char* szHW = "Hello World";
int main(int argc, char* argv[])
{
  vector <char> vec(strlen(sHW)); //涓哄悜閲忓垎閰嶅唴瀛樼┖闂?br>  int i, k = 0;
  char* cptr = szHW;
  while (*cptr != '\0')
  {  vec[k] = *cptr;  cptr++;  k++;  }
  for (i=0; i<vec.size(); i++)
  {  cout << vec[i];  }
  cout << endl;
  return 0;
}


榪欎釜渚嬪瓙鏇村姞娓呮櫚錛屼絾鏄娓告爣錛坕terator錛夌殑鎿嶄綔灝戜簡錛屽茍涓斿畾涔変簡棰濆鐨勬暣褰㈡暟浣滀負涓嬫爣錛岃屼笖錛屼綘蹇呴』娓呮鍦板湪紼嬪簭涓鏄庝負鍚戦噺鍒嗛厤澶氬皯鍐呭瓨絀洪棿銆?br>
鍛藉悕絀洪棿錛圢amespace錛?br>
涓嶴TL鐩稿叧鐨勬蹇墊槸鍛藉悕絀洪棿錛坣amespace錛夈係TL瀹氫箟鍦╯td鍛藉悕絀洪棿涓傛湁3縐嶆柟娉曞0鏄庝嬌鐢ㄧ殑鍛藉悕絀洪棿錛?br>
1錛庣敤using鍏抽敭瀛椾嬌鐢ㄨ繖涓懡鍚嶇┖闂達紝鍦ㄦ枃浠剁殑欏墮儴錛屼絾鍦ㄥ0鏄庣殑澶存枃浠朵笅闈㈠姞鍏ワ細
using namespace std;
榪欏鍗曚釜宸ョ▼鏉ヨ鏄渶綆鍗曚篃鏄渶濂界殑鏂規硶錛岃繖涓柟娉曞彲浠ユ妸浣犵殑浠g爜闄愬畾鍦╯td鍛藉悕絀洪棿涓?br>
2錛庝嬌鐢ㄦ瘡涓涓ā鏉垮墠瀵規瘡涓涓浣跨敤鐨勫璞¤繘琛屽0鏄庯紙灝卞儚鍘熷艦鍖栵級錛?br>using std::cout;
using std::endl;
using std::flush;
using std::set;
using std::inserter;
灝界榪欐牱鍐欐湁浜涘啑闀匡紝浣嗗彲浠ュ璁板繂浣跨敤鐨勫嚱鏁版瘮杈冩湁鍒╋紝騫朵笖浣犲彲浠ュ鏄撳湴澹版槑騫朵嬌鐢ㄥ叾浠栧懡鍚嶇┖闂翠腑鐨勬垚鍛樸?br>
3錛庡湪姣忎竴嬈′嬌鐢╯td鍛藉悕絀洪棿涓殑妯$増鏃訛紝浣跨敤std鍩熸爣璇嗙銆傛瘮濡傦細
typedef std::vector VEC_STR;
榪欑鏂規硶铏界劧鍐欒搗鏉ユ瘮杈冨啑闀匡紝浣嗘槸鏄湪娣峰悎浣跨敤澶氫釜鍛藉悕絀洪棿鏃剁殑鏈濂芥柟娉曘備竴浜汼TL鐨勭媯鐑呬竴鐩翠嬌鐢ㄨ繖縐嶆柟娉曪紝騫朵笖鎶婁笉浣跨敤榪欑鏂規硶鐨勪漢瑙嗕負寮傜被銆備竴浜涗漢浼氶氳繃榪欑鏂規硶寤虹珛涓浜涘畯鏉ョ畝鍖栭棶棰樸?br>
闄ゆ涔嬪錛屼綘鍙互鎶妘sing namespace std鍔犲叆鍒頒換浣曞煙涓紝姣斿鍙互鍔犲叆鍒板嚱鏁扮殑澶撮儴鎴栦竴涓帶鍒跺驚鐜綋涓?br>
涓浜涘緩璁?br>
涓轟簡閬垮厤鍦ㄨ皟璇曟ā寮忥紙debug mode錛夊嚭鐜版伡浜虹殑璀﹀憡錛屼嬌鐢ㄤ笅闈㈢殑緙栬瘧鍣ㄥ懡浠わ細

#pragma warning(disable: 4786)

鍙︿竴鏉¢渶瑕佹敞鎰忕殑鏄紝浣犲繀欏葷‘淇濆湪涓や釜灝栨嫭鍙蜂箣闂存垨灝栨嫭鍙峰拰鍚嶅瓧涔嬮棿鐢ㄧ┖鏍奸殧寮錛屽洜涓烘槸涓轟簡閬垮厤鍚?#8220;>>”縐諱綅榪愮畻絎︽販娣嗐傛瘮濡?br>vector <list<int>> veclis;
榪欐牱鍐欎細鎶ラ敊錛岃岃繖鏍峰啓錛?br>vector <list <int> > veclis;
灝卞彲浠ラ伩鍏嶉敊璇?br>
                                STL瀹炶返鎸囧崡錛堜腑錛?br>
STL瀹炶返鎸囧崡  Practical Guide to STL
浣滆咃細Jeff Bogan
緲昏瘧錛氬懆緲?br>

錛堟帴涓婄瘒錛?br>
鍙︿竴縐嶅鍣ㄢ斺旈泦鍚堬紙set錛?br>
榪欐槸寰蔣甯姪鏂囨。涓闆嗗悎錛坰et錛夌殑瑙i噴錛?#8220;鎻忚堪浜嗕竴涓帶鍒跺彉闀垮厓绱犲簭鍒楃殑瀵硅薄錛堟敞錛歴et涓殑key鍜寁alue鏄疜ey綾誨瀷鐨勶紝鑰宮ap涓殑key鍜寁alue鏄竴涓猵air緇撴瀯涓殑涓や釜鍒嗛噺錛夌殑妯℃澘綾伙紝姣忎竴涓厓绱犲寘鍚簡涓涓帓搴忛敭錛坰ort key錛夊拰涓涓?value)銆傚榪欎釜搴忓垪鍙互榪涜鏌ユ壘銆佹彃鍏ャ佸垹闄ゅ簭鍒椾腑鐨勪換鎰忎竴涓厓绱狅紝鑰屽畬鎴愯繖浜涙搷浣滅殑鏃墮棿鍚岃繖涓簭鍒椾腑鍏冪礌涓暟鐨勫鏁版垚姣斾緥鍏崇郴錛屽茍涓斿綋娓告爣鎸囧悜涓涓凡鍒犻櫎鐨勫厓绱犳椂錛屽垹闄ゆ搷浣滄棤鏁堛?#8221;
鑰屼竴涓粡榪囨洿姝g殑鍜屾洿鍔犲疄闄呯殑瀹氫箟搴旇鏄細涓涓泦鍚堬紙set錛夋槸涓涓鍣紝瀹冨叾涓墍鍖呭惈鐨勫厓绱犵殑鍊兼槸鍞竴鐨勩傝繖鍦ㄦ敹闆嗕竴涓暟鎹殑鍏蜂綋鍊肩殑鏃跺欐槸鏈夌敤鐨勩傞泦鍚堜腑鐨勫厓绱犳寜涓瀹氱殑欏哄簭鎺掑垪錛屽茍琚綔涓洪泦鍚堜腑鐨勫疄渚嬨傚鏋滀綘闇瑕佷竴涓敭/鍊煎錛坧air錛夋潵瀛樺偍鏁版嵁錛宮ap鏄竴涓洿濂界殑閫夋嫨銆備竴涓泦鍚堥氳繃涓涓摼琛ㄦ潵緇勭粐錛屽湪鎻掑叆鎿嶄綔鍜屽垹闄ゆ搷浣滀笂姣斿悜閲忥紙vector錛夊揩錛屼絾鏌ユ壘鎴栨坊鍔犳湯灝劇殑鍏冪礌鏃朵細鏈変簺鎱€?br>涓嬮潰鏄竴涓緥瀛愶細

//紼嬪簭錛歴et婕旂ず
//鐩殑錛氱悊瑙TL涓殑闆嗗悎錛坰et錛?br>
#include <string>
#include <set>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
  set <string> strset;
  set <string>::iterator si;
  strset.insert("cantaloupes");
  strset.insert("apple");
  strset.insert("orange");
  strset.insert("banana");
  strset.insert("grapes");
  strset.insert("grapes");  
  for (si=strset.begin(); si!=strset.end(); si++)  
  {  cout << *si << " ";  }
  cout << endl;
  return 0;
}

// 杈撳嚭錛?apple banana cantaloupes grapes orange
//娉ㄦ剰錛氳緭鍑虹殑闆嗗悎涓殑鍏冪礌鏄寜瀛楁瘝澶у皬欏哄簭鎺掑垪鐨勶紝鑰屼笖姣忎釜鍊奸兘涓嶉噸澶嶃?br>

濡傛灉浣犳劅鍏磋叮鐨勮瘽錛屼綘鍙互灝嗚緭鍑哄驚鐜敤涓嬮潰鐨勪唬鐮佹浛鎹細

copy(strset.begin(), strset.end(), ostream_iterator<string>(cout, " "));

.闆嗗悎錛坰et錛夎櫧鐒舵洿寮哄ぇ錛屼絾鎴戜釜浜鴻涓哄畠鏈変簺涓嶆竻鏅扮殑鍦版柟鑰屼笖鏇村鏄撳嚭閿欙紝濡傛灉浣犳槑鐧戒簡榪欎竴鐐癸紝浣犱細鐭ラ亾鐢ㄩ泦鍚堬紙set錛夊彲浠ュ仛浠涔堛?br>
鎵鏈夌殑STL瀹瑰櫒

瀹瑰櫒錛圕ontainer錛夌殑姒傚康鐨勫嚭鐜版棭浜庢ā鏉匡紙template錛夛紝瀹冨師鏈槸涓涓綆楁満縐戝棰嗗煙涓殑涓涓噸瑕佹蹇碉紝浣嗗湪榪欓噷錛屽畠鐨勬蹇靛拰STL娣峰悎鍦ㄤ竴璧蜂簡銆備笅闈㈡槸鍦⊿TL涓嚭鐜扮殑7縐嶅鍣細

vector錛堝悜閲忥級鈥斺擲TL涓爣鍑嗚屽畨鍏ㄧ殑鏁扮粍銆傚彧鑳藉湪vector 鐨?#8220;鍓嶉潰”澧炲姞鏁版嵁銆?br>deque錛堝弻绔槦鍒梔ouble-ended queue錛夆斺斿湪鍔熻兘涓婂拰vector鐩鎬技錛屼絾鏄彲浠ュ湪鍓嶅悗涓ょ鍚戝叾涓坊鍔犳暟鎹?
list錛堝垪琛級鈥斺旀父鏍囦竴嬈″彧鍙互縐誨姩涓姝ャ傚鏋滀綘瀵歸摼琛ㄥ凡緇忓緢鐔熸倝錛岄偅涔圫TL涓殑list鍒欐槸涓涓弻鍚戦摼琛紙姣忎釜鑺傜偣鏈夋寚鍚戝墠椹卞拰鎸囧悜鍚庣戶鐨勪袱涓寚閽堬級銆?br>set錛堥泦鍚堬級鈥斺斿寘鍚簡緇忚繃鎺掑簭浜嗙殑鏁版嵁錛岃繖浜涙暟鎹殑鍊?value)蹇呴』鏄敮涓鐨勩?br>map錛堟槧灝勶級鈥斺旂粡榪囨帓搴忎簡鐨勪簩鍏冪粍鐨勯泦鍚堬紝map涓殑姣忎釜鍏冪礌閮芥槸鐢變袱涓肩粍鎴愶紝鍏朵腑鐨刱ey錛堥敭鍊鹼紝涓涓猰ap涓殑閿煎繀欏繪槸鍞竴鐨勶級鏄湪鎺掑簭鎴栨悳绱㈡椂浣跨敤錛屽畠鐨勫煎彲浠ュ湪瀹瑰櫒涓噸鏂拌幏鍙栵紱鑰屽彟涓涓兼槸璇ュ厓绱犲叧鑱旂殑鏁板箋傛瘮濡傦紝闄や簡鍙互ar[43] = "overripe"榪欐牱鎵懼埌涓涓暟鎹紝map榪樺彲浠ラ氳繃ar["banana"] = "overripe"榪欐牱鐨勬柟娉曟壘鍒頒竴涓暟鎹傚鏋滀綘鎯寵幏寰楀叾涓殑鍏冪礌淇℃伅錛岄氳繃杈撳叆鍏冪礌鐨勫叏鍚嶅氨鍙互杞繪澗瀹炵幇銆?br>multiset錛堝閲嶉泦錛夆斺斿拰闆嗗悎錛坰et錛夌浉浼鹼紝鐒惰屽叾涓殑鍊間笉瑕佹眰蹇呴』鏄敮涓鐨勶紙鍗沖彲浠ユ湁閲嶅錛夈?br>multimap錛堝閲嶆槧灝勶級鈥斺斿拰鏄犲皠錛坢ap錛夌浉浼鹼紝鐒惰屽叾涓殑閿間笉瑕佹眰蹇呴』鏄敮涓鐨勶紙鍗沖彲浠ユ湁閲嶅錛夈?br>娉ㄦ剰錛氬鏋滀綘闃呰寰蔣鐨勫府鍔╂枃妗o紝浣犱細閬囧埌瀵規瘡縐嶅鍣ㄧ殑鏁堢巼鐨勯檲榪般傛瘮濡傦細log(n*n)鐨勬彃鍏ユ椂闂淬傞櫎闈炰綘瑕佸鐞嗗ぇ閲忕殑鏁版嵁錛屽惁鍒欒繖浜涙椂闂寸殑褰卞搷鏄彲浠ュ拷鐣ョ殑銆傚鏋滀綘鍙戠幇浣犵殑紼嬪簭鏈夋槑鏄劇殑婊炲悗鎰熸垨鑰呴渶瑕佸鐞嗘椂闂存敻鍏籌紙time critical錛夌殑浜嬫儏錛屼綘鍙互鍘諱簡瑙f洿澶氭湁鍏沖悇縐嶅鍣ㄨ繍琛屾晥鐜囩殑璇濋銆?br>
鎬庢牱鍦ㄤ竴涓猰ap涓嬌鐢ㄧ被錛?br>
Map鏄竴涓氳繃key錛堥敭錛夋潵鑾峰緱value(鍊?鐨勬ā鏉跨被銆?br>鍙︿竴涓棶棰樻槸浣犲笇鏈涘湪map涓嬌鐢ㄨ嚜宸辯殑綾昏屼笉鏄凡鏈夌殑鏁版嵁綾誨瀷錛屾瘮濡傜幇鍦ㄥ凡緇忕敤榪囩殑int銆傚緩绔嬩竴涓?#8220;涓烘ā鏉垮噯澶囩殑錛坱emplate-ready錛?#8221;綾伙紝浣犲繀欏葷‘淇濆湪璇ョ被涓寘鍚竴浜涙垚鍛樺嚱鏁板拰閲嶈澆鎿嶄綔絎︺備笅闈㈢殑涓浜涙垚鍛樻槸蹇呴』鐨勶細

緙虹渷鐨勬瀯閫犲嚱鏁幫紙閫氬父涓虹┖錛?br>
鎷瘋礉鏋勯犲嚱鏁?br>
閲嶈澆鐨?#8221;=”榪愮畻絎?br>
浣犲簲璇ラ噸杞藉敖鍙兘澶氱殑榪愮畻絎︽潵婊¤凍鐗瑰畾妯℃澘鐨勯渶瑕侊紝姣斿錛屽鏋滀綘鎯沖畾涔変竴涓被浣滀負 map涓殑閿紙key錛夛紝浣犲繀欏婚噸杞界浉鍏崇殑榪愮畻絎︺備絾鍦ㄨ繖閲屼笉瀵歸噸杞借繍綆楃鍋氳繃澶氳璁轟簡銆?br>
//紼嬪簭錛氭槧灝勮嚜瀹氫箟鐨勭被銆?br>//鐩殑錛氳鏄庡湪map涓庢牱浣跨敤鑷畾涔夌殑綾匯?br>
#include <string>
#include <iostream>
#include <vector>
#include <map>
using namespace std;

class CStudent
{
public :
  int nStudentID;
  int nAge;
public :
  //緙虹渷鏋勯犲嚱鏁扳斺旈氬父涓虹┖
  CStudent()  {  }
  // 瀹屾暣鐨勬瀯閫犲嚱鏁?br>  CStudent(int nSID, int nA)  {  nStudentID=nSID; nAge=nA;  }
  //鎷瘋礉鏋勯犲嚱鏁?br>  CStudent(const CStudent& ob)  
    {  nStudentID=ob.nStudentID; nAge=ob.nAge;  }
  // 閲嶈澆“=”
  void operator = (const CStudent& ob)  
    {  nStudentID=ob.nStudentID; nAge=ob.nAge;  }
};

int main(int argc, char* argv[])
{
  map <string, CStudent> mapStudent;

  mapStudent["Joe Lennon"] = CStudent(103547, 22);
  mapStudent["Phil McCartney"] = CStudent(100723, 22);
  mapStudent["Raoul Starr"] = CStudent(107350, 24);
  mapStudent["Gordon Hamilton"] = CStudent(102330, 22);

  // 閫氳繃濮撳悕鏉ヨ闂瓹student綾諱腑鐨勬垚鍛?br>  cout << "The Student number for Joe Lennon is " <<
    (mapStudent["Joe Lennon"].nStudentID) << endl;

  return 0;
}



TYPEDEF

濡傛灉浣犲枩嬈嬌鐢╰ypedef鍏抽敭瀛楋紝涓嬮潰鏄釜渚嬪瓙錛?br>typedef set <int> SET_INT;
typedef SET_INT::iterator SET_INT_ITER


緙栧啓浠g爜鐨勪竴涓範鎯氨鏄嬌鐢ㄥぇ鍐欏瓧姣嶅拰涓嬪垝綰挎潵鍛藉悕鏁版嵁綾誨瀷銆?br>
ANSI / ISO瀛楃涓?br>
ANSI/ISO瀛楃涓插湪STL瀹瑰櫒涓嬌鐢ㄥ緱寰堟櫘閬嶃傝繖鏄爣鍑嗙殑瀛楃涓茬被錛屽茍寰楀埌浜嗗箍娉涘湴鎻愬★紝鐒惰屽湪緙轟箯鏍煎紡澹版槑鐨勬儏鍐典笅灝變細鍑洪棶棰樸備綘蹇呴』浣跨敤“<<”鍜岃緭鍏ヨ緭鍑烘祦錛坕ostream錛変唬鐮侊紙濡俤ec, width絳夛級灝嗗瓧絎︿覆涓茶仈璧鋒潵銆?br>鍙湪蹇呰鐨勬椂鍊欎嬌鐢╟_str()鏉ラ噸鏂拌幏寰楀瓧絎︽寚閽堛?br>        
                
                                STL瀹炶返鎸囧崡錛堜笅錛?br>STL瀹炶返鎸囧崡  Practical Guide to STL
浣滆咃細Jeff Bogan
緲昏瘧錛氬懆緲?br>

錛堟帴涓瘒錛?br>
娓告爣錛圛terator錛?br>
鎴戣榪囨父鏍囨槸鎸囬拡錛屼絾涓嶄粎浠呮槸鎸囬拡銆傛父鏍囧拰鎸囬拡寰堝儚錛屽姛鑳藉緢鍍忔寚閽堬紝浣嗘槸瀹為檯涓婏紝娓告爣鏄氳繃閲嶈澆涓鍏冪殑”*”鍜?#8221;->”鏉ヤ粠瀹瑰櫒涓棿鎺ュ湴榪斿洖涓涓箋傚皢榪欎簺鍊煎瓨鍌ㄥ湪瀹瑰櫒涓茍涓嶆槸涓涓ソ涓繪剰錛屽洜涓烘瘡褰撲竴涓柊鍊兼坊鍔犲埌瀹瑰櫒涓垨鑰呮湁涓涓間粠瀹瑰櫒涓垹闄わ紝榪欎簺鍊煎氨浼氬け鏁堛傚湪鏌愮紼嬪害涓婏紝娓告爣鍙互鐪嬩綔鏄彞鏌勶紙handle錛夈傞氬父鎯呭喌涓嬫父鏍囷紙iterator錛夌殑綾誨瀷鍙互鏈夋墍鍙樺寲錛岃繖鏍峰鍣ㄤ篃浼氭湁鍑犵涓嶅悓鏂瑰紡鐨勮漿鍙橈細
iterator鈥斺斿浜庨櫎浜唙ector浠ュ鐨勫叾浠栦換浣曞鍣紝浣犲彲浠ラ氳繃榪欑娓告爣鍦ㄤ竴嬈℃搷浣滀腑鍦ㄥ鍣ㄤ腑鏈濆悜鍓嶇殑鏂瑰悜璧頒竴姝ャ傝繖鎰忓懗鐫瀵逛簬榪欑娓告爣浣犲彧鑳戒嬌鐢?#8220;++”鎿嶄綔絎︺傝屼笉鑳戒嬌鐢?#8220;--”鎴?#8220;+=”鎿嶄綔絎︺傝屽浜巚ector榪欎竴縐嶅鍣紝浣犲彲浠ヤ嬌鐢?#8220;+=”銆?#8220;鈥?#8221;銆?#8220;++”銆?#8220;-=”涓殑浠諱綍涓縐嶆搷浣滅鍜?#8220;<”銆?#8220;<=”銆?#8220;>”銆?#8220;>=”銆?#8220;==”銆?#8220;!=”絳夋瘮杈冭繍綆楃銆?br>reverse_iterator 鈥斺斿鏋滀綘鎯崇敤鍚戝悗鐨勬柟鍚戣屼笉鏄悜鍓嶇殑鏂瑰悜鐨勬父鏍囨潵閬嶅巻闄ector涔嬪鐨勫鍣ㄤ腑鐨勫厓绱狅紝浣犲彲浠ヤ嬌鐢╮everse_iterator 鏉ュ弽杞亶鍘嗙殑鏂瑰悜錛屼綘榪樺彲浠ョ敤rbegin()鏉ヤ唬鏇縝egin()錛岀敤rend()浠f浛end()錛岃屾鏃剁殑“++”鎿嶄綔絎︿細鏈濆悜鍚庣殑鏂瑰悜閬嶅巻銆?
const_iterator 鈥斺斾竴涓悜鍓嶆柟鍚戠殑娓告爣錛屽畠榪斿洖涓涓父鏁板箋備綘鍙互浣跨敤榪欑綾誨瀷鐨勬父鏍囨潵鎸囧悜涓涓彧璇葷殑鍊箋?br>const_reverse_iterator 鈥斺斾竴涓湞鍙嶆柟鍚戦亶鍘嗙殑娓告爣錛屽畠榪斿洖涓涓父鏁板箋?br>
Set鍜孧ap涓殑鎺掑簭

闄や簡綾誨瀷鍜屽煎錛屾ā鏉垮惈鏈夊叾浠栫殑鍙傛暟銆備綘鍙互浼犻掍竴涓洖璋冨嚱鏁幫紙閫氬父鎵璇寸殑澹版槑“predicate”鈥斺旇繖鏄甫鏈変竴涓弬鏁扮殑鍑芥暟榪斿洖涓涓竷灝斿鹼級銆備緥濡傦紝濡傛灉浣犳兂鑷姩寤虹珛涓涓泦鍚堬紝闆嗗悎涓殑鍏冪礌鎸夊崌搴忔帓鍒楋紝浣犲彲浠ョ敤綆鏄庣殑鏂規硶寤虹珛涓涓猻et綾伙細

set <int, greater<int> > set1

greater 鏄彟涓涓ā鏉垮嚱鏁幫紙鑼冨瀷鍑芥暟錛夛紝褰撳兼斁緗湪瀹瑰櫒涓悗錛屽畠鐢ㄦ潵涓鴻繖浜涘兼帓搴忋傚鏋滀綘鎯蟲寜闄嶅簭鎺掑垪榪欎簺鍊鹼紝浣犲彲浠ヨ繖鏍峰啓錛?br>
set <int, less<int> > set1

鍦ㄥ疄鐜扮畻娉曟椂錛屽皢澹版槑錛坧redicate錛変綔涓轟竴涓弬鏁頒紶閫掑埌涓涓猄TL妯℃澘綾諱腑鏃朵細閬囧埌寰堝鐨勫叾浠栨儏鍐碉紝涓嬮潰灝嗕細瀵硅繖浜涙儏鍐佃繘琛岃緇嗘弿榪般?br>
STL 鐨勭儲鎭間箣浜屸斺旈敊璇俊鎭?br>
榪欎簺妯℃澘鐨勫懡鍚嶉渶瑕佸緙栬瘧鍣ㄨ繘琛屾墿鍏咃紝鎵浠ュ綋緙栬瘧鍣ㄥ洜鏌愮鍘熷洜鍙戠敓鏁呴殰鏃訛紝瀹冧細鍒楀嚭涓孌靛緢闀跨殑閿欒淇℃伅錛屽茍涓旇繖浜涢敊璇俊鎭櫐娑╅毦鎳傘傛垜瑙夊緱澶勭悊榪欐牱鐨勯毦棰樻病鏈変粈涔堝ソ鍔炴硶銆備絾鏈濂界殑鏂規硶鏄幓鏌ユ壘騫朵粩緇嗙爺絀墮敊璇俊鎭寚鏄庝唬鐮佹鐨勫熬绔傝繕鏈変竴涓儲鎭煎氨鏄細褰撲綘鍙屽嚮閿欒淇℃伅鏃訛紝瀹冧細灝嗛敊璇寚鍚戞ā鐗堝簱鐨勫唴閮ㄤ唬鐮侊紝鑰岃繖浜涗唬鐮佸氨鏇撮毦璇諱簡銆備竴鑸儏鍐典笅錛岀籂閿欑殑鏈濂芥柟娉曟槸閲嶆柊媯鏌ヤ竴涓嬩綘鐨勪唬鐮侊紝榪愯鏃跺拷鐣ユ墍鏈夌殑璀﹀憡淇℃伅銆?br>
綆楁硶錛圓lgorithms錛?br>
綆楁硶鏄ā鏉夸腑浣跨敤鐨勫嚱鏁般傝繖鎵嶇湡姝e紑濮嬩綋鐜癝TL鐨勫己澶т箣澶勩備綘鍙互瀛︿範涓浜涘ぇ澶氭暟妯℃澘瀹瑰櫒涓兘浼氱敤鍒扮殑涓浜涚畻娉曞嚱鏁幫紝榪欐牱浣犲彲浠ラ氳繃鏈綆渚跨殑鏂瑰紡榪涜鎺掑簭銆佹煡鎵俱佷氦鎹㈢瓑鎿嶄綔銆係TL涓寘鍚潃涓緋誨垪瀹炵幇綆楁硶鐨勫嚱鏁般傛瘮濡傦細sort(vec.begin()+1, vec.end()-1)鍙互瀹炵幇瀵歸櫎絎竴涓拰鏈鍚庝竴涓厓绱犵殑鍏朵粬鍏冪礌鐨勬帓搴忔搷浣溿?br>瀹瑰櫒鑷韓涓嶈兘浣跨敤綆楁硶錛屼絾涓や釜瀹瑰櫒涓殑娓告爣鍙互闄愬畾瀹瑰櫒涓嬌鐢ㄧ畻娉曠殑鍏冪礌銆傛棦鐒惰繖鏍鳳紝綆楁硶涓嶇洿鎺ュ彈鍒板鍣ㄧ殑闄愬埗錛岃屾槸閫氳繃閲囩敤娓告爣錛岀畻娉曟墠鑳藉寰楀埌鏀寔銆傛澶栵紝寰堝嬈′綘浼氶亣鍒頒紶閫掍竴涓凡緇忓噯澶囧ソ浜嗙殑鍑芥暟錛堜互鍓嶆彁鍒扮殑澹版槑錛歱redicate錛変綔涓哄弬鏁幫紝浣犱篃鍙互浼犻掍互鍓嶇殑鏃у箋?br>涓嬮潰鐨勪緥瀛愭紨紺轟簡鎬庢牱浣跨敤綆楁硶錛?br>
//紼嬪簭錛氭祴璇曞垎鏁扮粺璁?br>//鐩殑錛氶氳繃瀵瑰悜閲忎腑淇濆瓨鐨勫垎鏁扮殑鎿嶄綔璇存槑鎬庢牱浣跨敤綆楁硶

#include <algorithm>  //濡傛灉瑕佷嬌鐢ㄧ畻娉曞嚱鏁幫紝浣犲繀欏昏鍖呭惈榪欎釜澶存枃浠躲?br>#include <numeric>  // 鍖呭惈accumulate錛堟眰鍜岋級鍑芥暟鐨勫ご鏂囦歡
#include <vector>
#include <iostream>
using namespace std;

int testscore[] = {67, 56, 24, 78, 99, 87, 56};

//鍒ゆ柇涓涓垚緇╂槸鍚﹂氳繃浜嗚冭瘯
bool passed_test(int n)
{
  return (n >= 60);
}

// 鍒ゆ柇涓涓垚緇╂槸鍚︿笉鍙婃牸
bool failed_test(int n)
{
  return (n < 60);
}

int main(int argc, char* argv[])
{
  int total;
  // 鍒濆鍖栧悜閲忥紝浣夸箣鑳藉瑁呭叆testscore鏁扮粍涓殑鍏冪礌
  vector <int> vecTestScore(testscore,
     testscore + sizeof(testscore) / sizeof(int));
  vector <int>::iterator vi;

  // 鎺掑簭騫舵樉紺哄悜閲忎腑鐨勬暟鎹?br>  sort(vecTestScore.begin(), vecTestScore.end());
  cout << "Sorted Test Scores:" << endl;
  for (vi=vecTestScore.begin(); vi != vecTestScore.end(); vi++)
  {  cout << *vi << ", ";  }
  cout << endl;

  // 鏄劇ず緇熻淇℃伅

  // min_element 榪斿洖涓涓?_iterator_ 綾誨瀷鐨勫璞★紝璇ュ璞℃寚鍚戝兼渶灝忕殑閭d釜鍏冪礌銆?br>  //“*”榪愮畻絎︽彁鍙栧厓绱犱腑鐨勫箋?br>  vi = min_element(vecTestScore.begin(), vecTestScore.end());
  cout << "The lowest score was " << *vi << "." << endl;

  //涓巑in_element綾諱技錛宮ax_element鏄夊嚭鏈澶у箋?br>  vi = max_element(vecTestScore.begin(), vecTestScore.end());
  cout << "The highest score was " << *vi << "." << endl;

  // 浣跨敤澹版槑鍑芥暟錛坧redicate function錛屾寚vecTestScore.begin()鍜寁ecTestScore.end()錛夋潵紜畾閫氳繃鑰冭瘯鐨勪漢鏁般?br>  cout << count_if(vecTestScore.begin(), vecTestScore.end(), passed_test) <<
    " out of " << vecTestScore.size() <<
    " students passed the test" << endl;

  // 紜畾鏈夊灝戜漢鑰冭瘯鎸備簡
  cout << count_if(vecTestScore.begin(),
    vecTestScore.end(), failed_test) <<
    " out of " << vecTestScore.size() <<
    " students failed the test" << endl;

  //璁$畻鎴愮嘩鎬誨拰
  total = accumulate(vecTestScore.begin(),
     vecTestScore.end(), 0);
  // 璁$畻鏄劇ず騫沖潎鎴愮嘩
  cout << "Average score was " <<
    (total / (int)(vecTestScore.size())) << endl;

  return 0;
}


Allocator錛堝垎閰嶅櫒錛?br>
Allocator鐢ㄥ湪妯℃澘鐨勫垵濮嬪寲闃舵錛屾槸涓哄璞″拰鏁扮粍榪涜鍒嗛厤鍐呭瓨絀洪棿鍜岄噴鏀劇┖闂存搷浣滅殑妯℃澘綾匯傚畠鍦ㄥ悇縐嶆儏鍐典笅鎵紨鐫寰堢縐樼殑瑙掕壊錛屽畠鍏沖績鐨勬槸楂樺眰鍐呭瓨鐨勪紭鍖栵紝鑰屼笖瀵歸粦鐩掓祴璇曟潵璇達紝浣跨敤Allocator鏄渶濂界殑閫夋嫨銆傞氬父錛屾垜浠笉闇瑕佹槑紜寚鏄庡畠錛屽洜涓哄畠浠氬父鏄綔涓轟笉鐢ㄦ坊鍔犵殑緙虹渷鐨勫弬鏁板嚭鐜扮殑銆傚鏋滃湪涓撲笟鐨勬祴璇曞伐浣滀腑鍑虹幇浜咥llocator錛屼綘鏈濂芥悶娓呮瀹冩槸浠涔堛?br>
Embed Templates錛堝祵鍏ュ紡妯$増錛夊拰Derive Templates錛堝熀妯℃澘錛?br>
姣忓綋浣犱嬌鐢ㄤ竴涓櫘閫氱殑綾葷殑鏃跺欙紝浣犱篃鍙互鍦ㄥ叾涓嬌鐢ㄤ竴涓猄TL綾匯傚畠鏄彲浠ヨ宓屽叆鐨勶細

class CParam
{
  string name;
  string unit;
  vector <double> vecData;
};


鎴栬呭皢瀹冧綔涓轟竴涓熀綾伙細

class CParam : public vector <double>
{
  string name;
  string unit;
};


STL妯$増綾諱綔涓哄熀綾繪椂闇瑕佽皚鎱庛傝繖闇瑕佷綘閫傚簲榪欑緙栫▼鏂瑰紡銆?br>
妯$増涓殑妯$増

涓烘瀯寤轟竴涓鏉傜殑鏁版嵁緇撴瀯錛屼綘鍙互灝嗕竴涓ā鏉挎鍏ュ彟涓涓ā鏉夸腑錛堝嵆“妯$増宓屽”錛夈備竴鑸渶濂界殑鏂規硶鏄湪紼嬪簭鍓嶉潰浣跨敤typedef鍏抽敭瀛楁潵瀹氫箟涓涓湪鍙︿竴涓ā鏉夸腑浣跨敤鐨勬ā鐗堢被鍨嬨?br>
// 紼嬪簭錛氬湪鍚戦噺涓祵鍏ュ悜閲忕殑婕旂ず銆?br>//鐩殑錛氳鏄庢庢牱浣跨敤宓屽鐨凷TL瀹瑰櫒銆?br>
#include <iostream>
#include <vector>

using namespace std;

typedef vector <int> VEC_INT;

int inp[2][2] = {{1, 1}, {2, 0}};  
  // 瑕佹斁鍏ユā鏉夸腑鐨?x2鐨勬鍒欐暟緇?br>
int main(int argc, char* argv[])
{
  int i, j;
  vector <VEC_INT> vecvec;
  // 濡傛灉浣犳兂鐢ㄤ竴鍙ヨ瘽瀹炵幇榪欐牱鐨勫祵濂楋紝浣犲彲浠ヨ繖鏍峰啓錛?br>  // vector <vector <int> > vecvec;
  
  // 灝嗘暟緇勫~鍏ュ悜閲?br>  VEC_INT v0(inp[0], inp[0]+2);  
    // 浼犻掍袱涓寚閽?br>    // 灝嗘暟緇勪腑鐨勫兼嫹璐濆埌鍚戦噺涓?br>  VEC_INT v1(inp[1], inp[1]+2);

  vecvec.push_back(v0);
  vecvec.push_back(v1);

  for (i=0; i<2; i++)
  {
    for (j=0; j<2; j++)
    {
      cout << vecvec[i][j] << "  ";
    }
    cout << endl;
  }
  return 0;
}

// 杈撳嚭錛?br>// 1 1
// 2 0


铏界劧鍦ㄥ垵濮嬪寲鏃跺緢楹葷儲錛屼竴鏃︿綘灝嗘暟鎹~濡傚悜閲忎腑錛屼綘灝卞疄鐜頒簡涓涓彉闀跨殑鍙墿鍏呯殑浜岀淮鏁扮粍錛堝ぇ灝忓彲鎵╁厖鐩村埌浣跨敤瀹屽唴瀛橈級銆傛牴鎹疄闄呴渶瑕侊紝鍙互浣跨敤鍚勭瀹瑰櫒鐨勫祵濂楃粍鍚堛?br>
鎬葷粨

STL鏄湁鐢ㄧ殑錛屼絾鏄嬌鐢ㄨ繃紼嬩腑鐨勫洶闅懼拰楹葷儲鏄啀鎵闅懼厤鐨勩傚氨鍍忎腑鍥戒漢鎵璇寸殑錛?#8220;濡傛灉浣犳帉鎻′簡瀹冿紝渚跨姽濡傝檸娣葷考銆?#8221;


鐢變簬CSDN鐨勬枃绔犵紪杈戝櫒鍙兘灝?<"鍜?>"涔嬮棿鐨勯儴鍒嗕綔涓篽tml鏍囩榪囨護鎺変簡錛岀幇璐村嚭姝g‘鐨?#8220;嫻嬭瘯鍒嗘暟緇熻”紼嬪簭濡備笅錛?

//紼嬪簭錛氭祴璇曞垎鏁扮粺璁?
//鐩殑錛氶氳繃瀵瑰悜閲忎腑淇濆瓨鐨勫垎鏁扮殑鎿嶄綔璇存槑鎬庢牱浣跨敤綆楁硶

#include <algorithm> //濡傛灉瑕佷嬌鐢ㄧ畻娉曞嚱鏁幫紝浣犲繀欏昏鍖呭惈榪欎釜澶存枃浠躲?
#include <numeric> // 鍖呭惈accumulate錛堟眰鍜岋級鍑芥暟鐨勫ご鏂囦歡
#include <vector>
#include <iostream>
using namespace std;

int testscore[] = {67, 56, 24, 78, 99, 87, 56};

//鍒ゆ柇涓涓垚緇╂槸鍚﹂氳繃浜嗚冭瘯
bool passed_test(int n)
{
return (n >= 60);
}

// 鍒ゆ柇涓涓垚緇╂槸鍚︿笉鍙婃牸
bool failed_test(int n)
{
return (n < 60);
}

int main(int argc, char* argv[])
{
int total;
// 鍒濆鍖栧悜閲忥紝浣夸箣鑳藉瑁呭叆testscore鏁扮粍涓殑鍏冪礌
vector <int> vecTestScore(testscore,
testscore + sizeof(testscore) / sizeof(int));
vector <int>::iterator vi;

// 鎺掑簭騫舵樉紺哄悜閲忎腑鐨勬暟鎹?
sort(vecTestScore.begin(), vecTestScore.end());
cout << "Sorted Test Scores:" << endl;
for (vi=vecTestScore.begin(); vi != vecTestScore.end(); vi++)
{ cout << *vi << ", "; }
cout << endl;

// 鏄劇ず緇熻淇℃伅

// min_element 榪斿洖涓涓?_iterator_ 綾誨瀷鐨勫璞★紝璇ュ璞℃寚鍚戝兼渶灝忕殑閭d釜鍏冪礌銆?
//“*”榪愮畻絎︽彁鍙栧厓绱犱腑鐨勫箋?
vi = min_element(vecTestScore.begin(), vecTestScore.end());
cout << "The lowest score was " << *vi << "." << endl;

//涓巑in_element綾諱技錛宮ax_element鏄夊嚭鏈澶у箋?
vi = max_element(vecTestScore.begin(), vecTestScore.end());
cout << "The highest score was " << *vi << "." << endl;

// 浣跨敤澹版槑鍑芥暟錛坧redicate function錛屾寚vecTestScore.begin()鍜寁ecTestScore.end()錛夋潵紜畾閫氳繃鑰冭瘯鐨勪漢鏁般?
cout << count_if(vecTestScore.begin(), vecTestScore.end(), passed_test) <<
" out of " << vecTestScore.size() <<
" students passed the test" << endl;

// 紜畾鏈夊灝戜漢鑰冭瘯鎸備簡
cout << count_if(vecTestScore.begin(),
vecTestScore.end(), failed_test) <<
" out of " << vecTestScore.size() <<
" students failed the test" << endl;

//璁$畻鎴愮嘩鎬誨拰
total = accumulate(vecTestScore.begin(),
vecTestScore.end(), 0);
// 璁$畻鏄劇ず騫沖潎鎴愮嘩
cout << "Average score was " <<
(total / (int)(vecTestScore.size())) << endl;

return 0;
}



]]>
浣跨敤VC6.0瀹炵幇紿楀彛鐨勪換鎰忓垎鍓?/title><link>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22244.html</link><dc:creator>姒曟爲钘?/dc:creator><author>姒曟爲钘?/author><pubDate>Wed, 18 Apr 2007 13:06:00 GMT</pubDate><guid>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22244.html</guid><wfw:comment>http://www.shnenglu.com/xpzhou/comments/22244.html</wfw:comment><comments>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22244.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/xpzhou/comments/commentRss/22244.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xpzhou/services/trackbacks/22244.html</trackback:ping><description><![CDATA[<p><strong>涓銆佸叧浜嶤SplitterWnd綾?/strong><br> 鎴戜滑鍦ㄤ嬌鐢–uteFtp鎴栬匩etAnt絳夊伐鍏風殑鏃跺欙紝涓鑸兘浼氳鍏跺鏉傜殑鐣岄潰鎵鍚稿紩錛屽湪榪欎簺鐣岄潰涓獥鍙h鍒嗗壊涓鴻嫢騫茬殑鍖哄煙錛岀湡姝e仛鍒頒簡紿楀彛鐨勪換鎰忓垎鍓層?閭d箞鎴戜滑鑷繁濡備綍鍒涘緩綾諱技鐨勭晫闈紝涔熷疄鐜扮獥鍙g殑浠繪剰鐨勫垎鍓插憿 錛熷湪VC6.0涓繖灝遍渶瑕佷嬌鐢ㄥ埌CSplitterWnd綾匯侰SplitterWnd鐪嬩笂鍘誨儚鏄竴縐嶇壒孌婄殑妗嗘灦紿楀彛錛屾瘡涓獥鍙i兘琚浉鍚岀殑鎴栬呬笉鍚岀殑瑙嗗浘鎵濉厖銆傚綋紿楀彛琚垏鍒嗗悗鐢ㄦ埛鍙互浣跨敤榧犳爣縐誨姩鍒囧垎鏉℃潵璋冩暣紿楀彛鐨勭浉瀵瑰昂瀵搞傝櫧鐒禫C6.0鏀寔浠嶢ppWizard涓垱寤哄垎鍓茬獥鍙o紝浣嗘槸鑷姩鍔犲叆鐨勫垎鍓叉潯鎬繪槸涓嶈兘璁╂垜浠弧鎰忥紝鍥犳鎴戜滑榪樻槸閫氳繃鎵嬪伐澧炲姞浠g爜鏉ョ啛鎮夎繖涓被銆?<br> CSplitterWnd鐨勬瀯閫犲嚱鏁頒富瑕佸寘鎷笅闈笁涓?<br><font color=#663333>BOOL Create(CWnd* pParentWnd,int nMaxRows,int nMaxCols,SIZE sizeMin,CCreateContext* pContext,DWORD dwStyle,UINT nID);</font> <br>    鍔熻兘鎻忚堪錛氳鍑芥暟鐢ㄦ潵鍒涘緩鍔ㄦ佸垏鍒嗙獥鍙c?br>    鍙傛暟鍚箟錛歱ParentWnd 鍒囧垎紿楀彛鐨勭埗妗嗘灦紿楀彛銆?br>    nMaxRows,nMaxCols鏄垱寤虹殑鏈澶х殑鍒楁暟鍜岃鏁般?<br>    sizeMin鏄獥鏍肩殑鐜板疄澶у皬銆?<br>    pContext 澶у鏁版儏鍐典笅浼犵粰鐖剁獥鍙c?<br>    nID鏄瓧紿楀彛鐨処D鍙? <br>  <font color=#663333>BOOL CreateStatic(CWnd* pParentWnd,int nRows,int nCols,DWORD dwStyle,UINT nID) </font><br>  鍔熻兘鎻忚堪錛氱敤鏉ュ垱寤哄垏鍒嗙獥鍙c?<br>  鍙傛暟鍚箟鍚屼笂銆?<br><font color=#663333>BOOL CreateView (int row,int col,CruntimeClass* pViewClass,SIZE sizeinit,CcreateContext* pContext);</font> <br>  鍔熻兘鎻忚堪錛氫負闈欐佸垏鍒嗙殑紿楀彛鐨勭綉鏍煎~鍏呰鍥俱傚湪灝嗚鍥句簬鍒囧垎紿楀彛鑱旂郴鍦ㄤ竴璧風殑鏃跺欏繀 欏誨厛灝嗗垏鍒嗙獥鍙e垱寤哄ソ銆?<br>  鍙傛暟鍚箟錛氬悓涓娿?br>  浠嶤SplitterWnd婧愮▼搴忓彲浠ョ湅鍑轟笉綆℃槸浣跨敤鍔ㄦ佸垱寤篊reate榪樻槸浣跨敤闈欐佸垱寤篊reateStatic錛屽湪鍑芥暟涓兘璋冪敤浜嗕竴涓繚鎶ゅ嚱鏁癈reateCommon錛屼粠涓嬮潰鐨凜reateCommon鍑芥暟涓殑鍏抽敭浠g爜鍙互鐪嬪嚭鍒涘緩CSplitterWnd鐨勫疄璐ㄦ槸鍒涘緩浜嗕竴緋誨垪鐨凪DI瀛愮獥鍙c?<br>    <font color=#663333>DWORD dwCreateStyle = dwStyle & ~(WS_HSCROLL|WS_VSCROLL);<br>    if (afxData.bWin4) <br>       dwCreateStyle &= ~WS_BORDER; // create with the same wnd-class as MDI-Frame (no erase bkgnd) <br>    if (!CreateEx(0, _afxWndMDIFrame, NULL, dwCreateStyle, 0, 0, 0, 0,pParentWnd->m_hWnd, (HMENU)nID, NULL)) <br>      return FALSE; // create invisible </font><br><br><strong>浜屻佸垱寤哄祵濂楀垎鍓茬獥鍙?/strong> <br><strong>  2.1鍒涘緩鍔ㄦ佸垎鍓茬獥鍙?/strong><br>  鍔ㄦ佸垎鍓茬獥鍙d嬌鐢–reate鏂規硶銆備笅闈㈢殑浠g爜灝嗗垱寤?x2鐨勭獥鏍箋?<br>  <font color=#663333>m_wndSplitter.Create(this,2,2,CSize(100,100),pContext);</font> <br>  浣嗘槸鍔ㄦ佸垱寤虹殑鍒嗗壊紿楀彛鐨勭獥鏍兼暟鐩笉鑳借秴榪?x2錛岃屼笖瀵逛簬鎵鏈夌殑紿楁牸錛岄兘蹇呴』鍏變韓鍚屼竴涓鍥撅紝鎵鍙楃殑闄愬埗涔熸瘮杈冨錛屽洜姝ゆ垜浠笉灝嗗姩鎬佸垱寤轟綔涓洪噸鐐廣傛垜浠殑涓昏綺懼姏鏀懼湪闈欐佸垎鍓茬獥鍙g殑鍒涘緩涓娿?<br>  <strong>2.2鍒涘緩闈欐佸垎鍓茬獥鍙?/strong><br>涓庡姩鎬佸垱寤虹浉姣旓紝闈欐佸垱寤虹殑浠g爜瑕佺畝鍗曡澶氾紝鑰屼笖鍙互鏈澶氬垱寤?6x16鐨勭獥鏍箋備笉鍚岀殑紿楁牸鎴戜滑鍙互浣跨敤CreateView濉厖涓嶅悓鐨勮鍥俱?<br>鍦ㄨ繖閲屾垜浠皢鍒涘緩CuteFtp鐨勭獥鍙e垎鍓層侰uteFtp鐨勫垎鍓叉儏鍐靛涓嬶細</p> <div align=center> <table height=223 cellSpacing=1 cellPadding=0 width=446 bgColor=#666666 border=0> <tbody> <tr bgColor=#eeeeee> <td colSpan=2 height=46> <div align=center><font face="Arial, Helvetica, sans-serif" size=2>CCuteFTPView</font></div> </td> </tr> <tr bgColor=#eeeeee> <td height=123> <div align=center><font face="Arial, Helvetica, sans-serif" size=2>CView2</font></div> </td> <td height=123> <div align=center><font face="Arial, Helvetica, sans-serif" size=2>CView3</font></div> </td> </tr> <tr bgColor=#eeeeee> <td colSpan=2 height=44> <div align=center><font face="Arial, Helvetica, sans-serif" size=2>CView4</font></div> </td> </tr> </tbody> </table> </div> <p>  鍒涘緩姝ラ錛?<br>  鈻?鍦ㄥ垱寤轟箣鍓嶆垜浠繀欏誨厛鐢ˋppWizard鐢熸垚鍗曟枃妗uteFTP錛岀敓鎴愮殑瑙嗙被涓?CCuteFTPView.鍚屾椂鍦ㄥ鍔犱笁涓綾繪垨鑰呬粠瑙嗙被緇ф壙鑰屾潵鐨勬淳鐢熺被CView2,CView3 CView4. <br>  鈻?<strong>澧炲姞鎴愬憳錛?/strong> <br>  鍦–mainfrm.h涓垜浠皢澧炲姞涓嬮潰鐨勪唬鐮侊細 <br>  <font color=#663333>CSplitterWnd wndSplitter1;<br>  CSplitterWnd wndSplitter2;</font><br>  鈻?<strong>閲嶈澆CMainFrame::OnCreateClient()鍑芥暟錛?/strong><br>  <font color=#663333>BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext) <br>  { //鍒涘緩涓涓潤鎬佸垎鏍忕獥鍙o紝鍒嗕負涓夎涓鍒?<br>    if(m_wndSplitter1.CreateStatic(this,3,1)==NULL) <br>      return FALSE;<br>    //灝咰CuteFTPView榪炴帴鍒?琛?鍒楃獥鏍間笂<br>    m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CCuteFTPView),CSize(100,100), pContext); <br>    m_wndSplitter1.CreateView(2,0,RUNTIME_CLASS(CView4),CSize(100,100),pContext); //灝咰View4榪炴帴鍒?琛?鍒?br>    if(m_wndSplitter2.CreateStatic(&m_wndSplitter,1,2,WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(1, 0))==NULL) <br>      return FALSE; //灝嗙1琛?鍒楀啀鍒嗗紑1琛?鍒?<br>    //灝咰View2綾昏繛鎺ュ埌絎簩涓垎鏍忓璞$殑0琛?鍒?br>    m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(400,300),pContext); //灝咰View3綾昏繛鎺ュ埌絎簩涓垎鏍忓璞$殑0琛?鍒?br>    m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),CSize(400,300),pContext); <br>    return TRUE; <br>  } </font><br><strong>2.3瀹炵幇鍚勪釜鍒嗗壊鍖哄煙鐨勯氫俊</strong> <br>鈻?strong>鏈夋枃妗g浉榪炵殑瑙嗗浘涔嬮棿鐨勯氫俊<br></strong>鐢盇ppWizard鐢熸垚鐨凜CuteFTPView鏄笌鏂囨。鐩歌繛鐨勶紝鍚屾椂鎴戜滑涔熻CView2涓庢枃妗g浉榪烇紝鍥犳鎴戜滑闇瑕佷慨鏀笴CuteFTPApp鐨処nitInstance()鍑芥暟錛屾垜浠皢澧炲姞涓嬮潰鐨勯儴鍒嗐?br><font color=#663333>AddDocTemplate (new CMultiDocTemplate(IDR_VIEW2TYPE, <br>RUNTIME_CLASS(CMainDoc), <br>RUNTIME_CLASS(CMDIChildWnd), <br>RUNTIME_CLASS(CView2))); </font><br>鎴戜滑鐜板湪鏉ュ疄鐜癈CuteFTPView涓嶤View2涔嬮棿鐨勯氫俊銆傜敱浜庤窡鏂囨。綾葷浉榪炵殑瑙嗗浘綾?鏄笉鑳藉畨鍏ㄧ殑涓庨櫎鏂囨。綾諱箣澶栫殑鍏朵綑鐨勮鍥劇被閫氫俊鐨勩傚洜姝ゆ垜浠彧鑳借浠栦滑閮戒笌鏂囨。 綾婚氫俊銆傚湪鏂囨。涓垜浠緗浉搴旂殑鎸囬拡浠ョ敤鏉ヨ幏鐨勫悇涓鍥俱傛垜浠噸杞?CCuteFTPView::OnOpenDocument()鍑芥暟錛?<br><font color=#663333>CCuteFTPView* pCuteFTPView;<br>CView2* pView2;<br>POSITION pos;<br>CView* pView;<br>while(pos!=NULL)<br>{<br>  pView=GetNextView(pos); <br>  if(pView->IsKindOf(RUNTIME_CLASS(CCuteFTPView))==NULL) <br>    pCuteFTPView=(CCuteFTPView*)pView; <br>  else(pView->IsKindOf(RUNTIME_CLASS(CCuteFTPView))==NULL) <br>    pView2=(CView2*)pView; <br>} </font><br>榪欐牱鎴戜滑鍦ㄦ枃妗g被涓氨鑾風殑浜嗚窡瀹冪浉榪炵殑鎵鏈夌殑瑙嗗浘鐨勬寚閽堛?br>濡傛灉闇瑕佸湪 CCuteFTPView涓皟鐢–View2涓殑涓涓柟娉旸oIt()鍒欎唬鐮佸涓嬶細 <br><font color=#663333>CCuteFTPDoc* pDoc=GetDocument();<br>CView2* pView2=pDoc->pView3;<br>pView3.DoIt(); </font><br>鈻?strong>鏃犳枃妗h鍥句笌鏂囨。鍏寵仈瑙嗗浘涔嬮棿鐨勯氫俊<br></strong>CView3鍜孋View4閮芥槸涓嶄笌鏂囨。鐩稿叧鑱旂殑銆傛垜浠幇鍦ㄥ疄鐜癈View3涓嶤View2鐨勯氫俊.姝e鍓嶉潰鎵璇達紝CView2鍙兘瀹夊叏鐨勪笌CCuteFTPDoc閫氫俊錛屽洜姝わ紝CView3濡傛灉闇瑕佽窡CView2閫氫俊錛屼篃蹇呴』鍊熷姪浜庢枃妗g被銆傚洜姝ょ▼搴忕殑鍏抽敭鏄浣曞湪CView3涓幏寰楁枃妗g殑鎸囬拡銆傝鍥劇被涓病鏈夎繖鏍風殑綾繪垚鍛樺彲浠ョ敤鏉ョ洿鎺ヨ闂枃妗g被銆備絾鏄垜浠煡閬撳湪涓葷獥鍙g被MainFrame涓垜浠彲浠ヨ幏寰楃▼搴忕殑浠繪剰紿楀彛綾葷殑鎸囬拡銆傚洜姝ゆ垜浠彧瑕佽幏寰楃▼搴忎富紿楀彛浜嗙殑鎸囬拡錛屽氨鍙互瑙e喅闂浜嗐備唬鐮佸疄鐜板湪CView3涓闂瓹View2涓殑DoIt()鏂規硶銆?br><br>CView3涓殑浠g爜濡備笅錛?<br><br><font color=#663333>CMainFrame* MainFrame=(CMainFrame*)this->GetParent()->GetParent(); <br>CCuteFTPDoc* Doc=(CCuteFTPDoc*)MainFrame->GetActiveDocument();<br>if(Doc!=NULL) Doc->DoIt(); <br><br>CCuteFTPDoc涓殑鐩稿簲鐨勫鐞嗗嚱鏁癉oIt()浠g爜濡備笅錛?<br><br>CView2* pView2; <br>POSITION pos; <br>CView* pView; <br>while(pos!=NULL) <br>{ <br>  pView=GetNextView(pos);<br>  if(pView->IsKindOf(RUNTIME_CLASS(CView2))==NULL) <br>  pView2=(CView2*)pView; <br>} <br>pView2->DoIt(); </font><br>鈻?strong>鏃犳枃妗e叧鑱旇鍥句箣闂寸殑閫氫俊<br></strong>CView3鍜孋View4閮芥槸涓嶈窡鏂囨。鐩歌繛鐨勶紝濡備綍瀹炵幇浠栦滑涔嬮棿鐨勯氫俊鍛€?姝e鎴戜滑鍦ㄤ笂闈㈡墍璇寸殑閭f牱錛岀敱浜庡湪涓繪鏋朵腑鎴戜滑鍙互璁塊棶浠繪剰鐨勮鍥撅紝鍥犳鎴戜滑鐨勪富瑕佷換 鍔¤繕鏄湪紼嬪簭涓幏寰椾富妗嗘灦鐨勬寚閽堛傚湪CView3涓闂瓹View4涓殑鏂規硶DoIt()銆?<br><font color=#663333>CMainFrame* MainFrame=(CMainFrame*)this->GetParent()->GetParent(); <br>CView4* View4=(CView4*)MainFrame->m_wndSplitter1.GetPane(2,0); <br>View4->DoIt(); </font><br><br>鍒扮幇鍦ㄦ垜浠凡緇忓疄鐜頒簡CuteFTP鐨勪富紿楀彛鐨勬鏋跺茍涓旇兘澶熷疄鐜頒粬浠箣闂寸浉浜掗氫俊鐨勬鏋躲?鍚屾牱鐨勬垜浠彲浠ュ疄鐜板叾浠栫殑涓浜涙祦琛岀晫闈緥濡侼etAnts錛孎oxmail鐨勫垎鍓層?<br><br><strong>涓夈佸叧浜庡璇濇鐨勫垎鍓?/strong> <br>鍒扮洰鍓嶄負姝紝鍙湁鍩轟簬鏂囨。/瑙嗗浘鐨勭▼搴忔墠鑳戒嬌鐢–SplitterWnd錛岃屽熀浜庡璇濇鐨勫簲鐢ㄧ▼搴忓嵈涓嶆敮鎸丆SplitterWnd,浣嗘槸濡傛灉鎴戜滑鍦ㄧ戶鎵跨被涓噸杞戒竴浜涜櫄鎷熸柟娉曪紝涔熻兘浣緾SplitterWnd 鍦ㄥ璇濇紼嬪簭涓嬌鐢ㄣ備粠MFC鐨勬簮紼嬪簭WinSplit.cpp涓彲浠ョ湅鍑猴紝涓轟簡鑾峰緱鐖剁獥鍙g殑鍦版柟紼嬪簭閮借皟鐢ㄤ簡铏氭嫙鏂規硶GetParentFrame(),鍥犳濡傛灉鍦ㄥ璇濇涓嬌鐢紝鎴戜滑蹇呴』灝嗗畠鏀逛負GetParent();鍥犳鎴戜滑灝咰SplitterWnd鐨勪笅闈㈠嚑涓柟娉曢噸杞姐?br>  <font color=#663333>virtual void StartTracking(int ht); <br>  virtual CWnd* GetActivePane(int* pRow = NULL, int* pCol = NULL); <br>  virtual void SetActivePane( int row, int col, CWnd* pWnd = NULL ); <br>  virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); <br>  virtual BOOL OnNotify( WPARAM wParam, LPARAM lParam, LRESULT* pResult ); <br>  virtual BOOL OnWndMsg( UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult ); </font><br>鍏蜂綋瀹炵幇濡備笅錛屽疄鐜頒腑鎴戝皢緇欏嚭鍘熸湁浠g爜鐨勪富瑕侀儴鍒嗕互鍙婁慨鏀瑰悗鐨勪唬鐮佷互浣滃姣斻?br>鍦╟pp鏂囦歡涓姞鍏ヤ笅闈㈢殑鏋氫婦綾誨瀷銆?<br><font color=#663333>enum HitTestValue <br>{ <br>  noHit = 0,//琛ㄧず娌℃湁閫変腑浠諱綍瀵硅薄<br>  vSplitterBox = 1,<br>  hSplitterBox = 2,<br>  bothSplitterBox = 3,<br>  vSplitterBar1 = 101,//浠h〃鍚勪釜鏂瑰悜鐨勬按騫沖垎鍓叉潯<br>  vSplitterBar15 = 115,<br>  hSplitterBar1 = 201,//浠h〃鍨傜洿鏂瑰悜鐨勫悇涓垎鍓叉潯<br>  hSplitterBar15 = 215,<br>  splitterIntersection1 = 301,//浠h〃鍚勪釜浜ゅ弶鐐?br>  splitterIntersection225 = 525<br>};<br><br>CWnd* CxSplitterWnd::GetActivePane(int* pRow, int* pCol)<br>{<br>  ASSERT_VALID(this); <br>  //鑾峰緱褰撳墠鐨勮幏寰楃劍鐐圭殑紿楀彛<br>  //涓嬮潰娉ㄩ噴綺椾綋鐨勬槸鍘熸湁鐨勪唬鐮佺殑涓昏閮ㄥ垎銆?br>  // CWnd* pView = NULL;<br>  //CFrameWnd* pFrameWnd = GetParentFrame();<br>  //ASSERT_VALID(pFrameWnd);<br>  //pView = pFrameWnd->GetActiveView();<br>  //if (pView == NULL)<br>  // pView = GetFocus();<br>  CWnd* pView = GetFocus();<br>  if (pView != NULL && !IsChildPane(pView, pRow, pCol))<br>    pView = NULL;<br>  return pView; <br>} <br><br>void CxSplitterWnd::SetActivePane( int row, int col, CWnd* pWnd) <br>{<br>  CWnd* pPane = pWnd == NULL ? GetPane(row, col) : pWnd; <br>  //涓嬮潰鍔犳敞閲婄矖浣撶殑鏄師鏈変唬鐮佺殑涓昏閮ㄥ垎銆?br>  //FrameWnd* pFrameWnd = GetParentFrame();<br>  //ASSERT_VALID(pFrameWnd); <br>  //pFrameWnd->SetActiveView((CView*)pPane); <br>  pPane->SetFocus();//淇敼鍚庣殑璇彞 <br>}<br><br>void CxSplitterWnd::StartTracking(int ht)<br>{<br>  ASSERT_VALID(this); <br>  if (ht == noHit) <br>    return;<br>  // GetHitRect will restrict 'm_rectLimit' as appropriate <br>  GetInsideRect(m_rectLimit);<br>  if (ht >= splitterIntersection1 && ht <= splitterIntersection225) <br>  { <br>    // split two directions (two tracking rectangles) <br>    int row = (ht - splitterIntersection1) / 15; <br>    int col = (ht - splitterIntersection1) % 15; <br>    GetHitRect(row + vSplitterBar1, m_rectTracker); <br>    int yTrackOffset = m_ptTrackOffset.y; <br>    m_bTracking2 = TRUE; <br>    GetHitRect(col + hSplitterBar1, m_rectTracker2); <br>    m_ptTrackOffset.y = yTrackOffset; <br>  } <br>  else if (ht == bothSplitterBox) <br>  { <br>  // hit on splitter boxes (for keyboard) <br>  GetHitRect(vSplitterBox, m_rectTracker); <br>  int yTrackOffset = m_ptTrackOffset.y; <br>  m_bTracking2 = TRUE; <br>  GetHitRect(hSplitterBox, m_rectTracker2); <br>  m_ptTrackOffset.y = yTrackOffset; // center it <br>  m_rectTracker.OffsetRect(0, m_rectLimit.Height()/2); m_rectTracker2.OffsetRect(m_rectLimit.Width()/2, 0); <br>  } <br>  else<br>  { <br>  // only hit one bar <br>  GetHitRect(ht, m_rectTracker); <br>  } <br><br>//涓嬮潰鍔犳敞閲婄殑灝嗕粠紼嬪簭涓垹鍘匯?<br>//CView* pView = (CView*)GetActivePane(); <br>//if (pView != NULL && pView->IsKindOf(RUNTIME_CLASS(CView))) <br>//{ <br>// ASSERT_VALID(pView); <br>// CFrameWnd* pFrameWnd = GetParentFrame(); <br>//ASSERT_VALID(pFrameWnd); <br>//pView->OnActivateFrame(WA_INACTIVE, pFrameWnd); <br>// } <br>// steal focus and capture<br>  SetCapture();<br>  SetFocus();<br>  // make sure no updates are pending <br>  RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_UPDATENOW); <br>  // set tracking state and appropriate cursor<br>  m_bTracking = TRUE;<br>  OnInvertTracker(m_rectTracker); <br>  if (m_bTracking2) <br>    OnInvertTracker(m_rectTracker2); <br>  m_htTrack = ht; <br>  SetSplitCursor(ht); <br>  }<br><br>BOOL CxSplitterWnd::OnCommand(WPARAM wParam, LPARAM lParam) <br>{ <br>  if (CWnd::OnCommand(wParam, lParam)) <br>    return TRUE; <br>  //涓嬮潰綺椾綋鐨勬槸鍘熺▼搴忕殑璇彞 <br>//<strong>return GetParentFrame()->SendMessage(WM_COMMAND, wParam, lParam); </strong><br>  return GetParent()->SendMessage(WM_COMMAND, wParam, lParam); <br>}<br>BOOL CxSplitterWnd::OnNotify( WPARAM wParam, LPARAM lParam, LRESULT* pResult )<br>{<br>  if (CWnd::OnNotify(wParam, lParam, pResult)) <br>    return TRUE; <br>  //涓嬮潰綺椾綋鐨勬槸婧愮▼搴忕殑璇彞<br>  //<strong>*pResult = GetParentFrame()->SendMessage(WM_NOTIFY, wParam, lParam);</strong><br>  *pResult = GetParent()->SendMessage(WM_NOTIFY, wParam, lParam);<br>  return TRUE;<br>} <br><br>BOOL CxSplitterWnd::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult) <br>{ <br>  // The code line below is necessary if using CxSplitterWnd in a regular dll <br>  // AFX_MANAGE_STATE(AfxGetStaticModuleState());<br>  return CWnd::OnWndMsg(message, wParam, lParam, pResult); <br>} </font><br>榪欐牱鎴戜滑灝卞彲浠ュ湪瀵硅瘽妗嗕腑浣跨敤CxSplitterWnd綾諱簡銆?<br><br><strong>鍥涖丆SplitterWnd鐨勬墿灞?/strong> <br>CSplitterWnd鎵╁睍璇濋鏄緢澶氱殑錛屾垜浠彲浠ラ氳繃瀵瑰師鏈夋柟娉曠殑瑕嗙洊鎴栬呭鍔犳柊鐨勬柟娉曟潵鎵╁睍CSplitterWnd銆傛垜浠湪姝や粎涓句袱涓柟闈㈢殑渚嬪瓙銆?<br><strong>4.1閿佸畾鍒囧垎鏉?/strong><br>褰撶敤鎴峰垱寤哄ソ鍒嗗壊紿楀彛鍚庯紝鏈夋椂騫朵笉甯屾湜閫氳繃鎷栧姩鍒囧垎鏉℃潵璋冭妭紿楀彛鐨勫ぇ灝忋傝繖鏃跺氨蹇呴』閿佸畾鍒囧垎鏉°傞攣瀹氬垏鍒嗘潯鐨勬渶綆鍗曠殑鏂規硶鑾繃浜庝笉璁〤SplitterWnd鏉ュ鐞哤M_LBUTTONDOWN,WM_MOUSEMOVE,WM_SETCURSOR娑堟伅錛岃屾槸灝嗚繖浜涙秷鎭氦緇機Wnd紿楀彛榪涜澶勭悊錛屼粠鑰屽睆钄芥帀榪欎簺娑堟伅銆傛嬁WM_LBUTTONDOWN澶勭悊榪囩▼鏉ヨ銆備慨鏀逛負濡備笅錛?<br><font color=#663333>void CXXSplitterWnd::OnLButtonDown(UINT nFlags,CPoint point) <br>{ <br>  CWnd::OnLButtonDown(nFlags,point);<br>} </font><br>鍏朵綑鐨勫鐞嗘柟娉曠被浼箋?<br><strong>4.2鍒囧垎鏉$殑瀹氬埗</strong> <br>鐢盬indow鑷繁鐢熸垚鐨勫垏鍒嗘潯鎬繪槸鍥哄畾鐨勶紝娌℃湁浠諱綍鐨勫彉鍖栵紝鎴戜滑鍦ㄤ嬌鐢ㄤ竴浜涜蔣浠舵瘮濡侫CDSee鐨勬椂鍊欏嵈鑳藉彂鐜板畠浠殑鍒囧垎鏉″嵈鏄拰鑷姩鐢熸垚鐨勫垏鍒嗘潯涓嶄竴鏍風殑銆傞偅涔堝浣曞畾鍒惰嚜宸辯殑鍒囧垎鏉″憿錛熼氳繃閲嶈澆CSplitterWnd鐨勮櫄鏂規硶OnDrawSplitter鍜孫nInvertTracker鍙互杈懼埌榪欐牱鐨勭洰鐨勩備笅闈㈢殑浠g爜鐢熸垚鐨勬晥鏋滄槸鍒嗗壊紿楀彛鐨勮竟鐣岄鑹蹭負綰㈣壊錛屽垎鍓叉潯鐨勯鑹蹭負緇胯壊.浠g爜濡備笅錛?br><font color=#663333>void CSplitterWndEx::OnDrawSplitter(CDC *pDC, ESplitType nType, const CRect &rectArg)<br>{<br>  if(pDC==NULL) <br>  { <br>  RedrawWindow(rectArg,NULL,RDW_INVALIDATE|RDW_NOCHILDREN);<br>  return;<br>  } <br>  ASSERT_VALID(pDC);<br>  CRect rc=rectArg;<br>  switch(nType) <br>  { <br>  case splitBorder:<br>  //閲嶇敾鍒嗗壊紿楀彛杈圭晫,浣夸箣涓虹孩鑹?<br>    pDC->Draw3dRect(rc,RGB(255,0,0),RGB(255,0,0));<br>    rc.InflateRect(-CX_BORDER,-CY_BORDER); <br>    pDC->Draw3dRect(rc,RGB(255,0,0),RGB(255,0,0)); <br>    return; <br>  case splitBox:<br>    pDC->Draw3dRect(rc,RGB(0,0,0),RGB(0,0,0));<br>    rc.InflateRect(-CX_BORDER,-CY_BORDER); <br>    pDC->Draw3dRect(rc,RGB(0,0,0),RGB(0,0,0));<br>    rc.InflateRect(-CX_BORDER,-CY_BORDER);<br>    pDC->FillSolidRect(rc,RGB(0,0,0)); <br>    pDC->Draw3dRect(rc,RGB(0,0,0),RGB(0,0,0));<br>    return; <br>  case splitBar: <br>  //閲嶇敾鍒嗗壊鏉★紝浣夸箣涓虹豢鑹?<br>    pDC->FillSolidRect(rc,RGB(255,255,255));<br>    rc.InflateRect(-5,-5); <br>    pDC->Draw3dRect(rc,RGB(255,0,0),RGB(255,0,0)); <br>    return; <br>  default: <br>    ASSERT(FALSE); <br>  } <br>  pDC->FillSolidRect(rc,RGB(0,0,255));<br>} <br>void CSplitterWndEx::OnInvertTracker(CRect &rect) <br>{ <br>  ASSERT_VALID(this);<br>  ASSERT(!rect.IsRectEmpty()); <br>  ASSERT((GetStyle()&WS_CLIPCHILDREN)==0);<br>  CRect rc=rect; <br>  rc.InflateRect(2,2);<br>  CDC* pDC=GetDC(); <br>  CBrush* pBrush=CDC::GetHalftoneBrush();<br>  HBRUSH hOldBrush=NULL;<br>  if(pBrush!=NULL) hOldBrush=(HBRUSH)SelectObject(pDC->m_hDC,pBrush->m_hObject);<br>  pDC->PatBlt(rc.left,rc.top,rc.Width(),rc.Height(),BLACKNESS); <br>  if(hOldBrush!=NULL) <br>  SelectObject(pDC->m_hDC,hOldBrush);<br>  ReleaseDC(pDC); <br>} </font><br>鍚屾牱鎴戜滑鍙緇ф壙CSplitterWnd涓殑鍏朵綑鐨勪竴浜涜櫄鎷熸柟娉曞氨鍙互鐢熸垚鍏鋒湁鑷繁涓х殑鍒嗗壊紿楀彛浜嗐?br></p> <img src ="http://www.shnenglu.com/xpzhou/aggbug/22244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xpzhou/" target="_blank">姒曟爲钘?/a> 2007-04-18 21:06 <a href="http://www.shnenglu.com/xpzhou/archive/2007/04/18/22244.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>vc鑷畾涔夋秷鎭殑鍙戦佷笌鎺ユ敹鐨勬柟娉曞疄鐜?/title><link>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22185.html</link><dc:creator>姒曟爲钘?/dc:creator><author>姒曟爲钘?/author><pubDate>Wed, 18 Apr 2007 00:52:00 GMT</pubDate><guid>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22185.html</guid><wfw:comment>http://www.shnenglu.com/xpzhou/comments/22185.html</wfw:comment><comments>http://www.shnenglu.com/xpzhou/archive/2007/04/18/22185.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/xpzhou/comments/commentRss/22185.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xpzhou/services/trackbacks/22185.html</trackback:ping><description><![CDATA[<div> <p><span style="FONT-WEIGHT: bold">浠ヤ笅鐢ㄤ竴涓嚜鍒涚殑瀵硅瘽妗嗙被(MyMessageDlg)鍚戣鍥劇被(MessageTestView)<br>鍙戦佽嚜瀹氫箟娑堟伅涓轟緥錛岃鏄庤繖涓ょ涓嶅悓鏂規硶鐨勮嚜瀹氫箟娑堟伅鐨?/span></p> <p><span style="COLOR: rgb(255,0,0)">娑堟伅浼犻掔殑鏂規硶涓錛氫嬌鐢∣N_MESSAGE<br></span>浣跨敤ON_MESSAGE鍝嶅簲娑堟伅錛屽繀欏婚厤鍚堝畾涔夋秷鎭?define WM_MY_MESSAGE (WM_USER+100)</p> <p>瀵逛簬<span style="COLOR: rgb(0,0,255)">鍙戦佹秷鎭?/span>-MyMessageDlg錛?br>鍦ㄥ叾MyMessageDlg.h涓紝瀹氫箟#define WM_MY_MESSAGE (WM_USER+100)<br>鍦ㄥ叾MyMessageDlg.cpp涓鍏堟坊鍔狅細錛僫 nclude "MainFrm.h"<br>鍥犱負浣跨敤浜咰MainFrame*瀹氫箟瀵硅薄銆?br>騫朵笖瑕佹湁嫻嬭瘯娑堟伅鐨勫嚱鏁幫細<br>void MyMessageDlg::OnButtonMsg()<br>{<br>    // TODO: Add your control notification handler code here<br>    CMainFrame* pMF=(CMainFrame*)AfxGetApp()->m_pMainWnd;  //鍏堥氳繃鑾峰彇褰撳墠妗嗘灦鎸囬拡<br>    CView * active = pMF->GetActiveView();//鎵嶈兘鑾峰彇褰撳墠瑙嗙被鎸囬拡<br>    if(active != NULL)  //鑾峰彇浜嗗綋鍓嶈綾繪寚閽堟墠鑳藉彂閫佹秷鎭?br>    active->PostMessage(WM_MY_MESSAGE,0,0);   //浣跨敤PostMessage鍙戦佹秷鎭?br>}</p> <p>瀵逛簬<span style="COLOR: rgb(51,0,255)">娑堟伅鐨勬帴鍙楄?/span>-MessageTestView錛?br>鍦ㄥ叾MessageTestView.h涓紝涔熻瀹氫箟#define WM_MY_MESSAGE (WM_USER+100)<br>騫跺畾涔夋秷鎭槧灝勫嚱鏁?OnMyMessage()<br>protected:<br> //{{AFX_MSG(CMessageTestView)<br> afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);<br> //}}AFX_MSG<br> DECLARE_MESSAGE_MAP()<br>鍦ㄥ叾MessageTestView.cpp涓紝<br>鍏堣澹版槑鍝嶅簲娑堟伅錛?br>BEGIN_MESSAGE_MAP(CMessageTestView, CEditView)<br> //{{AFX_MSG_MAP(CMessageTestView)<br> ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)<br> //}}AFX_MSG_MAP<br>鍐嶆坊鍔犳秷鎭搷搴旂殑鍑芥暟瀹炵幇錛?br>LRESULT CMessageTestView::OnMyMessage(WPARAM wParam, LPARAM lParam)<br>{<br> MessageBox("OnMyMessage!");<br> return 0;<br>}</p> <p><br><span style="COLOR: rgb(255,0,0)">娑堟伅浼犻掔殑鏂規硶浜岋細浣跨敤ON_REGISTERED_MESSAGE<br></span>浣跨敤ON_REGISTERED_MESSAGE娉ㄥ唽娑堟伅錛屽繀欏婚厤鍚?br>static UINT WM_MY_MESSAGE=RegisterWindowMessage("Message");</p> <p>瀵逛簬<span style="COLOR: rgb(213,43,111)">娑堟伅鐨勫彂閫佽?/span>-MyMessageDlg錛?br>鍦ㄥ叾MyMessageDlg.h涓紝鍙<br>瀹氫箟static UINT WM_MY_MESSAGE=RegisterWindowMessage("Message");<br>灝卞彲浠ヤ簡銆?br>鍦ㄥ叾MyMessageDlg.cpp涓鍏堟坊鍔狅細錛僫 nclude "MainFrm.h"<br>鍥犱負浣跨敤浜咰MainFrame*瀹氫箟瀵硅薄銆?br>騫朵笖瑕佹湁嫻嬭瘯娑堟伅鐨勫嚱鏁幫細<br>void MyMessageDlg::OnButtonMsg()<br>{<br>    // TODO: Add your control notification handler code here<br>    CMainFrame* pMF=(CMainFrame*)AfxGetApp()->m_pMainWnd;  //鍏堥氳繃鑾峰彇褰撳墠妗嗘灦鎸囬拡<br>    CView * active = pMF->GetActiveView();//鎵嶈兘鑾峰彇褰撳墠瑙嗙被鎸囬拡<br>    if(active != NULL)  //鑾峰彇浜嗗綋鍓嶈綾繪寚閽堟墠鑳藉彂閫佹秷鎭?br>    active->PostMessage(WM_MY_MESSAGE,0,0);   //浣跨敤PostMessage鍙戦佹秷鎭?br>}</p> <p>瀵逛簬<span style="COLOR: rgb(204,51,112)">娑堟伅鐨勬帴鏀惰?/span>-MessageTestView錛?br>鍦ㄥ叾MessageTestView.h涓笉瑕佸畾涔?br>static UINT WM_MY_MESSAGE=RegisterWindowMessage("Message");<br>搴旇鎶婅繖涓畾涔夋斁鍒癕essageTestView.cpp涓紝瑕佷笉浼氬嚭鐜? redefinition<br>鍦ㄥ叾MessageTestView.h涓彧瑕佸畾涔夋秷鎭槧灝勫嚱鏁?br>protected:<br> //{{AFX_MSG(CMessageTestView)<br> afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);<br> //}}AFX_MSG<br> DECLARE_MESSAGE_MAP()<br>鍦ㄥ叾MessageTestView.cpp涓?鍏堝畾涔?br>static UINT WM_MY_MESSAGE=RegisterWindowMessage("Message");<br>鎺ョ潃娉ㄥ唽娑堟伅錛?br>BEGIN_MESSAGE_MAP(CMessageTestView, CEditView)<br> //{{AFX_MSG_MAP(CMessageTestView)<br>        ON_REGISTERED_MESSAGE(WM_MY_MESSAGE,OnMyMessage)<br> //}}AFX_MSG_MAP<br>鏈鍚庢坊鍔犳秷鎭搷搴旂殑鍑芥暟瀹炵幇錛?br>LRESULT CMessageTestView::OnMyMessage(WPARAM wParam, LPARAM lParam)<br>{<br> MessageBox("OnMyMessage!");<br> return 0;<br>}<br>----------------------------------------------------------------<br>姣旇緝涓ょ鏂規硶錛屽彧鏄暐鏈変笉鍚屻備絾涔熻灝忓績璋ㄦ厧錛屼互鍏嶅嚭鐜版帴鏀朵笉鍒版秷鎭殑鎯呭喌銆?/p> <p>-------------------------------------------------------------------</p> <p>鍏朵粬娉ㄦ剰浜嬮」錛?/p> <p>鍙戦佹秷鎭殑-MyMessageDlg.cpp鍓嶄篃瑕佸畾涔?br>static UINT WM_MY_MESSAGE=RegisterWindowMessage("Message");</p> <p>鎺ュ彈娑堟伅鐨?MessageTestView.cpp鍓嶄篃瑕佸畾涔?br>static UINT WM_MY_MESSAGE=RegisterWindowMessage("Message");</p> <p>RegisterWindowMessage("Message")涓?"鐨勫唴瀹規槸浠涔堜笉閲嶈錛屽啓浠涔堥兘鍙互錛屼絾鏄?br>鍙戦佽呬笌鎺ュ彈鑰呭繀欏繪槸涓鏍風殑鍐呭錛屼緥濡傦細"Message"</p> </div> <img src ="http://www.shnenglu.com/xpzhou/aggbug/22185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xpzhou/" target="_blank">姒曟爲钘?/a> 2007-04-18 08:52 <a href="http://www.shnenglu.com/xpzhou/archive/2007/04/18/22185.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.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://69kun.com" target="_blank">亚洲在线观看免费视频</a>| <a href="http://18p2.com" target="_blank">亚洲欧美日韩另类</a>| <a href="http://492541.com" target="_blank">久久国产直播</a>| <a href="http://lianjiemenye.com" target="_blank">日韩视频一区</a>| <a href="http://yashikeji.com" target="_blank">精品动漫3d一区二区三区免费版</a>| <a href="http://www-888593.com" target="_blank">欧美日韩在线播放三区四区</a>| <a href="http://proenhub.com" target="_blank">蜜臀av性久久久久蜜臀aⅴ四虎</a>| <a href="http://119553.com" target="_blank">午夜精品999</a>| <a href="http://133969.com" target="_blank">在线视频精品一区</a>| <a href="http://9882355.com" target="_blank">亚洲国产乱码最新视频</a>| <a href="http://318823.com" target="_blank">亚洲欧美精品</a>| <a href="http://977764.com" target="_blank">亚洲网友自拍</a>| <a href="http://yzxq520.com" target="_blank">在线中文字幕日韩</a>| <a href="http://605799.com" target="_blank">一区二区三区精品在线</a>| <a href="http://s0247.com" target="_blank">一本色道久久综合亚洲精品不卡</a>| <a href="http://kedou09.com" target="_blank">亚洲国产成人高清精品</a>| <a href="http://goldteddy.com" target="_blank">1204国产成人精品视频</a>| <a href="http://yjizzdizhigmail.com" target="_blank">悠悠资源网久久精品</a>| <a href="http://y65y.com" target="_blank">在线电影国产精品</a>| <a href="http://seqing9.com" target="_blank">亚洲国产精品一区二区久</a>| <a href="http://mathck.com" target="_blank">亚洲高清免费</a>| <a href="http://038226.com" target="_blank">国产精品一区2区</a>| <a href="http://8842aa.com" target="_blank">国产精品―色哟哟</a>| <a href="http://r4747.com" target="_blank">国产亚洲福利</a>| <a href="http://107766a.com" target="_blank">黄色成人精品网站</a>| <a href="http://tuokuba520.com" target="_blank">亚洲国产天堂网精品网站</a>| <a href="http://www-5888c.com" target="_blank">亚洲黄色高清</a>| <a href="http://www49853b.com" target="_blank">亚洲精选国产</a>| <a href="http://www-498787.com" target="_blank">一区二区三区日韩欧美精品</a>| <a href="http://hlyjh.com" target="_blank">亚洲中午字幕</a>| <a href="http://119773.com" target="_blank">欧美在线观看视频</a>| <a href="http://www25sds.com" target="_blank">久久综合网hezyo</a>| <a href="http://www92444.com" target="_blank">欧美承认网站</a>| <a href="http://301110.com" target="_blank">亚洲精品在线免费</a>| <a href="http://7345jj.com" target="_blank">亚洲欧美色婷婷</a>| <a href="http://www17727.com" target="_blank">欧美在线视频观看</a>| <a href="http://www-00468.com" target="_blank">欧美成人精品h版在线观看</a>| <a href="http://1390555.com" target="_blank">欧美日韩国产在线一区</a>| <a href="http://bdkaoyan.com" target="_blank">国产精品sss</a>| <a href="http://www11111111.com" target="_blank">欧美精品色一区二区三区</a>| <a href="http://555415.com" target="_blank">欧美视频一区在线</a>| <a href="http://www-kkjj88.com" target="_blank">国产一区二区毛片</a>| <a href="http://www5909.com" target="_blank">亚洲三级影院</a>| <a href="http://631537.com" target="_blank">亚洲综合不卡</a>| <a href="http://vipaiqiyi.com" target="_blank">欧美高清不卡</a>| <a href="http://0370city.com" target="_blank">亚洲精品综合在线</a>| <a href="http://339505.com" target="_blank">亚洲欧美日韩精品久久久久</a>| <a href="http://chinashixin.com" target="_blank">久久精品人人爽</a>| <a href="http://cibocentre.com" target="_blank">欧美福利小视频</a>| <a href="http://jizzdo.com" target="_blank">国产精品99免视看9</a>| <a href="http://shalxee.com" target="_blank">韩日午夜在线资源一区二区</a>| <a href="http://www-442336.com" target="_blank">亚洲精品女人</a>| <a href="http://739191g.com" target="_blank">亚洲影院高清在线</a>| <a href="http://avse69.com" target="_blank">欧美在线观看视频一区二区</a>| <a href="http://2589999.com" target="_blank">欧美寡妇偷汉性猛交</a>| <a href="http://ipx758.com" target="_blank">在线一区日本视频</a>| <a href="http://8eeeccc.com" target="_blank">久久综合给合</a>| <a href="http://4008166177.com" target="_blank">国产精品欧美在线</a>| <a href="http://taotuango.com" target="_blank">亚洲精品乱码久久久久久蜜桃麻豆</a>| <a href="http://chinagreetown.com" target="_blank">一区二区三区四区五区精品</a>| <a href="http://ategpu.com" target="_blank">久久午夜电影网</a>| <a href="http://buyiker.com" target="_blank">一区二区三区国产在线观看</a>| <a href="http://05ec.com" target="_blank">美女国产精品</a>| <a href="http://2061826.com" target="_blank">国产精品一区二区视频</a>| <a href="http://www-232323.com" target="_blank">日韩一级黄色片</a>| <a href="http://scptw.com" target="_blank">久久一区二区三区国产精品 </a>| <a href="http://ddh345.com" target="_blank">亚洲午夜黄色</a>| <a href="http://667939.com" target="_blank">在线一区二区三区四区五区</a>| <a href="http://junhuatesu.com" target="_blank">蜜桃精品久久久久久久免费影院</a>| <a href="http://ahqdlq.com" target="_blank">国产欧美日本一区二区三区</a>| <a href="http://amiee88.com" target="_blank">一卡二卡3卡四卡高清精品视频 </a>| <a href="http://4439x9.com" target="_blank">久久久久成人精品免费播放动漫</a>| <a href="http://456888com.com" target="_blank">欧美理论电影在线观看</a>| <a href="http://8331651.com" target="_blank">在线播放亚洲一区</a>| <a href="http://chunhuigk.com" target="_blank">久久99在线观看</a>| <a href="http://ddh345.com" target="_blank">99精品久久免费看蜜臀剧情介绍</a>| <a href="http://4480vv.com" target="_blank">久久久久网站</a>| <a href="http://155fck.com" target="_blank">狠狠色丁香婷婷综合影院</a>| <a href="http://862323.com" target="_blank">日韩视频一区二区</a>| <a href="http://jkllkg.com" target="_blank">亚洲成人在线网</a>| <a href="http://ykk7.com" target="_blank">久久精品99国产精品</a>| <a href="http://www218999.com" target="_blank">国产伦理一区</a>| <a href="http://nbpacking.com" target="_blank">亚洲女性喷水在线观看一区</a>| <a href="http://hnautos.com" target="_blank">日韩一区二区免费高清</a>| <a href="http://www-42189.com" target="_blank">欧美日本在线播放</a>| <a href="http://49vvvv.com" target="_blank">99精品国产一区二区青青牛奶</a>| <a href="http://tareandshare.com" target="_blank">农夫在线精品视频免费观看</a>| <a href="http://4449998.com" target="_blank">久久成人免费日本黄色</a>| <a href="http://569688.com" target="_blank">国产一区二区电影在线观看</a>| <a href="http://tzhbsb.com" target="_blank">亚洲欧美日韩视频二区</a>| <a href="http://9niuw.com" target="_blank">欧美激情一区三区</a>| <a href="http://ahhccz.com" target="_blank">男人的天堂成人在线</a>| <a href="http://tuiliqi.com" target="_blank">亚洲日韩中文字幕在线播放</a>| <a href="http://irongxun.com" target="_blank">亚洲国产精品久久久久秋霞蜜臀</a>| <a href="http://youminwang.com" target="_blank">免费高清在线视频一区·</a>| <a href="http://8847m.com" target="_blank">亚洲国产精品一区二区www在线</a>| <a href="http://wallypanel.com" target="_blank">免费观看日韩av</a>| <a href="http://118626cc.com" target="_blank">久久精品日韩</a>| <a href="http://mxkaozi.com" target="_blank">欧美一区午夜精品</a>| <a href="http://bx989.com" target="_blank">亚洲综合久久久久</a>| <a href="http://631537.com" target="_blank">国产深夜精品</a>| <a href="http://yp77741.com" target="_blank">久久精品国产精品亚洲精品</a>| <a href="http://o10669.com" target="_blank">久久精品系列</a>| <a href="http://998609.com" target="_blank">亚洲福利免费</a>| <a href="http://060969.com" target="_blank">亚洲国产精品成人一区二区</a>| <a href="http://b46n.com" target="_blank">欧美日产在线观看</a>| <a href="http://yw6632.com" target="_blank">亚洲欧美日韩国产中文</a>| <a href="http://8332777.com" target="_blank">欧美一级电影久久</a>| <a href="http://916969.com" target="_blank">136国产福利精品导航网址</a>| <a href="http://www48929.com" target="_blank">欧美肥婆在线</a>| <a href="http://gg5gg.com" target="_blank">欧美日韩国产精品一区</a>| <a href="http://whmingtong.com" target="_blank">亚洲欧美日韩另类</a>| <a href="http://6633kj.com" target="_blank">香蕉乱码成人久久天堂爱免费</a>| <a href="http://zzmzit.com" target="_blank">韩日视频一区</a>| <a href="http://32m8.com" target="_blank">亚洲国产一区在线观看</a>| <a href="http://5858yp.com" target="_blank">欧美午夜一区二区福利视频</a>| <a href="http://shllswkj.com" target="_blank">久久精品国产2020观看福利</a>| <a href="http://173168.com" target="_blank">麻豆精品一区二区综合av</a>| <a href="http://quintostdio.com" target="_blank">国产一区二区0</a>| <a href="http://0855dyw.com" target="_blank">欧美大色视频</a>| <a href="http://e7w2.com" target="_blank">国产精品高潮呻吟久久av黑人</a>| <a href="http://0808333.com" target="_blank">欧美一区二区视频观看视频</a>| <a href="http://1x118.com" target="_blank">亚洲欧美一区二区三区久久 </a>| <a href="http://xing69.com" target="_blank">av成人动漫</a>| <a href="http://884v.com" target="_blank">国产精品久久久久毛片软件</a>| <a href="http://www-136445.com" target="_blank">久久久夜夜夜</a>| <a href="http://dusenborg.com" target="_blank">欧美精品久久久久久久久久</a>| <a href="http://227002.com" target="_blank">久久精品理论片</a>| <a href="http://sdhanm.com" target="_blank">欧美二区不卡</a>| <a href="http://628155.com" target="_blank">欧美一区二区视频观看视频</a>| <a href="http://83319b.com" target="_blank">欧美高清在线观看</a>| <a href="http://wwww76.com" target="_blank">久久国产精品色婷婷</a>| <a href="http://hafenchen.com" target="_blank">欧美日本一区</a>| <a href="http://www330849.com" target="_blank">久久在线免费</a>| <a href="http://haixian360.com" target="_blank">欧美色综合网</a>| <a href="http://y7y7s.com" target="_blank">母乳一区在线观看</a>| <a href="http://lgcpvip888.com" target="_blank">国产精品日韩欧美一区二区</a>| <a href="http://492541.com" target="_blank">亚洲高清久久</a>| <a href="http://aqdw2021.com" target="_blank">国产午夜一区二区三区</a>| <a href="http://456kp.com" target="_blank">亚洲美女一区</a>| <a href="http://xxx6688.com" target="_blank">在线观看日韩欧美</a>| <a href="http://shght.com" target="_blank">性久久久久久</a>| <a href="http://erosgems.com" target="_blank">夜夜嗨av一区二区三区中文字幕</a>| <a href="http://301110.com" target="_blank">久久精品综合一区</a>| <a href="http://wanzhixue.com" target="_blank">亚洲精品小视频</a>| <a href="http://coolpaly.com" target="_blank">欧美伊人久久大香线蕉综合69</a>| <a href="http://32tun.com" target="_blank">在线一区二区视频</a>| <a href="http://66666556.com" target="_blank">嫩草成人www欧美</a>| <a href="http://www18889.com" target="_blank">欧美一区二区成人6969</a>| <a href="http://www-919198.com" target="_blank">久久久噜噜噜久久久</a>| <a href="http://344230.com" target="_blank">久久精品国产77777蜜臀</a>| <a href="http://5767j.com" target="_blank">欧美色欧美亚洲另类二区</a>| <a href="http://www225011.com" target="_blank">亚洲国产另类久久久精品极度</a>| <a href="http://yp77741.com" target="_blank">一区二区三区在线视频播放</a>| <a href="http://mfgun.com" target="_blank">亚洲欧美日韩天堂</a>| <a href="http://cqrebo.com" target="_blank">亚洲嫩草精品久久</a>| <a href="http://nvpuow.com" target="_blank">欧美日韩亚洲视频一区</a>| <a href="http://353033.com" target="_blank">亚洲激情在线播放</a>| <a href="http://033530.com" target="_blank">亚洲精品一区二区三区四区高清</a>| <a href="http://ssis378.com" target="_blank">日韩视频免费观看高清完整版</a>| <a href="http://qhzyxcd.com" target="_blank">欧美插天视频在线播放</a>| <a href="http://223tt.com" target="_blank">欧美**字幕</a>| <a href="http://yzxq520.com" target="_blank">狠狠狠色丁香婷婷综合久久五月</a>| <a href="http://aqdw2021.com" target="_blank">亚洲欧美变态国产另类</a>| <a href="http://aberyco.com" target="_blank">亚洲在线一区</a>| <a href="http://6661639.com" target="_blank">欧美日韩亚洲一区二区三区在线观看</a>| <a href="http://5207877.com" target="_blank">亚洲福利一区</a>| <a href="http://wwwqm9.com" target="_blank">91久久精品网</a>| <a href="http://www-n77.com" target="_blank">另类天堂视频在线观看</a>| <a href="http://syntheticnets.com" target="_blank">毛片一区二区三区</a>| <a href="http://9511331.com" target="_blank">在线观看欧美成人</a>| <a href="http://tavbao.com" target="_blank">久久综合九色九九</a>| <a href="http://99hhbb.com" target="_blank">欧美国产日韩一区二区在线观看</a>| <a href="http://596361.com" target="_blank">在线观看欧美日韩</a>| <a href="http://596361.com" target="_blank">麻豆av一区二区三区</a>| <a href="http://wansilv.com" target="_blank">玖玖综合伊人</a>| <a href="http://aaddgg66.com" target="_blank">一区视频在线</a>| <a href="http://szbeikai.com" target="_blank">久久久久99</a>| <a href="http://www-yh6.com" target="_blank">欧美在线视频免费观看</a>| <a href="http://44ie.com" target="_blank">国产一区日韩二区欧美三区</a>| <a href="http://www-26333com.com" target="_blank">欧美在线高清</a>| <a href="http://caoliu20.com" target="_blank">亚洲伊人伊色伊影伊综合网</a>| <a href="http://cl6m.com" target="_blank">国产精品综合视频</a>| <a href="http://qqx123.com" target="_blank">久久九九精品99国产精品</a>| <a href="http://91nbs.com" target="_blank">欧美激情视频一区二区三区在线播放</a>| <a href="http://hicao32.com" target="_blank">亚洲人成久久</a>| <a href="http://778km.com" target="_blank">欧美日韩一区二区三区</a>| <a href="http://7kz6.com" target="_blank">亚洲一区二区精品在线</a>| <a href="http://www77711.com" target="_blank">久久久久欧美</a>| <a href="http://114mz.com" target="_blank">91久久中文</a>| <a href="http://szth186.com" target="_blank">欧美日韩视频在线第一区</a>| <a href="http://9876666.com" target="_blank">亚洲一区综合</a>| <a href="http://77smsm.com" target="_blank">久久精品在线观看</a>| <a href="http://www-787788.com" target="_blank">亚洲国产精品高清久久久</a>| <a href="http://48655aa.com" target="_blank">欧美日韩视频在线第一区</a>| <a href="http://jilcool.com" target="_blank">性欧美xxxx视频在线观看</a>| <a href="http://cca22.com" target="_blank">亚洲二区精品</a>| <a href="http://hbsmhy.com" target="_blank">亚洲伊人色欲综合网</a>| <a href="http://zw1019.com" target="_blank">精品不卡视频</a>| <a href="http://kuaikan97.com" target="_blank">欧美激情一区在线</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>