锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩一级黄色大片,久久精品国产综合精品,国产精品美女久久久久aⅴ国产馆http://m.shnenglu.com/stdyh/vc java sdkzh-cnSun, 16 Nov 2025 13:51:43 GMTSun, 16 Nov 2025 13:51:43 GMT60Memory Leak Detection by Windbghttp://m.shnenglu.com/stdyh/archive/2013/06/19/201152.htmldyhdyhWed, 19 Jun 2013 08:22:00 GMThttp://m.shnenglu.com/stdyh/archive/2013/06/19/201152.htmlhttp://m.shnenglu.com/stdyh/comments/201152.htmlhttp://m.shnenglu.com/stdyh/archive/2013/06/19/201152.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/201152.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/201152.htmlhttp://www.codeproject.com/Articles/31382/Memory-Leak-Detection-Using-Windbg

Introduction

Memory leak is a time consuming bug often created by C++ developers. Detection of memory leaks is often tedious. Things get worst if the code is not written by you, or if the code base is quite huge.

Though there are tools available in the market that will help you in memory leak detection, most of these tools are not free. I found Windbg as a freeware powerful tool to solve memory leak bugs. At least, we get an idea about the code location which might be suspected to cause memory leaks. COM Interface leaks are out of the scope of this article.

Windbg is a powerful user/kernel space debugger from Microsoft, which can be downloaded and installed from here.

Using Windbg

To start working with Windbg:

  1. Configure the symbol file path to the Microsoft symbol server “SRV*d:\symbols*http://msdl.microsoft.com/download/symbols”.
  2. Add your program EXE/DLL PDB (program database) path to the symbol file path.
  3. You also need to to configure the Operating System's flag to enable user stack trace for the process which has memory leaks. This is simple, and can be done with gflags.exe. Gflags.exe is installed during Windbg's installation. This can also be done through command line, using the command “gflags.exe /i MemoryLeak.exe +ust”. My program name is Test2.exe; hence, for the demo, I will be using Test2.exe rather than MemoryLeak.exe. The snapshot below shows the setting of OS flags for the application Test2.exe.

cmd.JPG

Once we have configured Windbg for the symbol file path, start the process which is leaking memory, and attach Windbg to it. The Attach option in Windbg is available under the File menu, or can be launched using the F6 shortcut. The snapshot below shows the same:

attach.JPG

The !heap command of Windbg is used to display heaps. !heap is well documented in the Windbg help.

I have developed a small program which leaks memory, and will demonstrate further using the same.

Collapse | Copy Code
int _tmain(int argc, _TCHAR* argv[]) {   while(1)       {          AllocateMemory();       }       return 0;  }  void AllocateMemory()  {       int* a = new int[2000];       ZeroMemory(a, 8000);       Sleep(1);  }

The above program leaks an integer array of size 2000*4 bytes.

After attaching Windbg to the process, execute the !heap –s command. -s stands for summary. Below is the output of the !heap -s for the leaking process:

Collapse | Copy Code
0:001> !heap -s NtGlobalFlag enables following debugging aids for new heaps:     validate parameters     stack back traces   Heap     Flags   Reserv  Commit  Virt   Free  List   UCR  Virt  Lock  Fast                      (k)     (k)    (k)     (k) length      blocks cont. heap  -----------------------------------------------------------------------------    00150000 58000062    1024     12     12      1     1     1    0      0   L      00250000 58001062      64     24     24     15     1     1    0      0   L      00260000 58008060      64     12     12     10     1     1    0      0          00330000 58001062   64576  47404  47404     13     4     1    0      0   -----------------------------------------------------------------------------

Let the process execute for some time, and then re-break in to the process, and execute !heap -s again. Shown below is the output of the command:

Collapse | Copy Code
0:001> !heap -s NtGlobalFlag enables following debugging aids for new heaps:    validate parameters    stack back traces    Heap     Flags   Reserv  Commit  Virt   Free  List   UCR  Virt  Lock  Fast                       (k)     (k)    (k)     (k) length      blocks cont. heap     -----------------------------------------------------------------------------     00150000 58000062    1024     12     12      1     1     1    0      0   L       00250000 58001062      64     24     24     15     1     1    0      0   L       00260000 58008060      64     12     12     10     1     1    0      0           00330000 58001062  261184 239484 239484     14     4     1    0      0          -----------------------------------------------------------------------------

Lines marked in bold show the growing heap. The above snapshot shows a heap with the handle 00330000 growing.

Execute “!heap -stat –h 00330000” for the growing heap. This command shows the heap statistics for the growing heap. Shown below is the command's output.

Collapse | Copy Code
0:001> !heap -stat -h 00330000 heap @ 00330000 group-by: TOTSIZE max-display: 20     size     #blocks     total     ( %) (percent of total busy bytes)     1f64 76c6 - e905f58  (99.99)     1800 1 - 1800  (0.00)     824 2 - 1048  (0.00)     238 2 - 470  (0.00)     244 1 - 244  (0.00)     4c 5 - 17c  (0.00)     b0 2 - 160  (0.00)     86 2 - 10c  (0.00)     50 3 - f0  (0.00)     74 2 - e8  (0.00)     38 4 - e0  (0.00)     48 3 - d8  (0.00)     c4 1 - c4  (0.00)     62 2 - c4  (0.00)     be 1 - be  (0.00)     b8 1 - b8  (0.00)     ae 1 - ae  (0.00)     ac 1 - ac  (0.00)     55 2 - aa  (0.00)     a4 1 - a4  (0.00)

The above snapshot shows 0x76c6 blocks of size 1f64 being allocated (marked in bold). Such a huge number of blocks of the same size makes us suspect that these can be leaked blocks. Rest of the block allocations do not have growing block numbers.

The next step is to get the address of these blocks. Use the command !heap -flt s 1f64. This command filters all other blocks of heap and displays the details of blocks having size 1f64.

Shown below is the output for the command:

Collapse | Copy Code
0:001> !heap -flt s 1f64     _HEAP @ 150000     _HEAP @ 250000     _HEAP @ 260000     _HEAP @ 330000       HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state         003360e0 03f0 0000  [07]   003360e8    01f64 - (busy)         00338060 03f0 03f0  [07]   00338068    01f64 - (busy)         00339fe0 03f0 03f0  [07]   00339fe8    01f64 - (busy)         0033bf60 03f0 03f0  [07]   0033bf68    01f64 - (busy)         0033dee0 03f0 03f0  [07]   0033dee8    01f64 - (busy)         01420040 03f0 03f0  [07]   01420048    01f64 - (busy)         01421fc0 03f0 03f0  [07]   01421fc8    01f64 - (busy)         01423f40 03f0 03f0  [07]   01423f48    01f64 - (busy)         01425ec0 03f0 03f0  [07]   01425ec8    01f64 - (busy)         01427e40 03f0 03f0  [07]   01427e48    01f64 - (busy)         01429dc0 03f0 03f0  [07]   01429dc8    01f64 - (busy)         0142bd40 03f0 03f0  [07]   0142bd48    01f64 - (busy)         0142dcc0 03f0 03f0  [07]   0142dcc8    01f64 - (busy)         0142fc40 03f0 03f0  [07]   0142fc48    01f64 - (busy)         01431bc0 03f0 03f0  [07]   01431bc8    01f64 - (busy)         01433b40 03f0 03f0  [07]   01433b48    01f64 - (busy)         01435ac0 03f0 03f0  [07]   01435ac8    01f64 - (busy)         01437a40 03f0 03f0  [07]   01437a48    01f64 - (busy)         014399c0 03f0 03f0  [07]   014399c8    01f64 - (busy)         0143b940 03f0 03f0  [07]   0143b948    01f64 - (busy)         0143d8c0 03f0 03f0  [07]   0143d8c8    01f64 - (busy)         0143f840 03f0 03f0  [07]   0143f848    01f64 - (busy)         014417c0 03f0 03f0  [07]   014417c8    01f64 - (busy)         01443740 03f0 03f0  [07]   01443748    01f64 - (busy)         014456c0 03f0 03f0  [07]   014456c8    01f64 - (busy)         01447640 03f0 03f0  [07]   01447648    01f64 - (busy)         014495c0 03f0 03f0  [07]   014495c8    01f64 - (busy)         0144b540 03f0 03f0  [07]   0144b548    01f64 - (busy)         0144d4c0 03f0 03f0  [07]   0144d4c8    01f64 - (busy)         0144f440 03f0 03f0  [07]   0144f448    01f64 - (busy)         014513c0 03f0 03f0  [07]   014513c8    01f64 - (busy)         01453340 03f0 03f0  [07]   01453348    01f64 - (busy)         014552c0 03f0 03f0  [07]   014552c8    01f64 - (busy)         01457240 03f0 03f0  [07]   01457248    01f64 - (busy)         014591c0 03f0 03f0  [07]   014591c8    01f64 - (busy)         0145b140 03f0 03f0  [07]   0145b148    01f64 - (busy)         0145d0c0 03f0 03f0  [07]   0145d0c8    01f64 - (busy)         0145f040 03f0 03f0  [07]   0145f048    01f64 - (busy)         01460fc0 03f0 03f0  [07]   01460fc8    01f64 - (busy)         01462f40 03f0 03f0  [07]   01462f48    01f64 - (busy)         01464ec0 03f0 03f0  [07]   01464ec8    01f64 - (busy)         01466e40 03f0 03f0  [07]   01466e48    01f64 - (busy)         01468dc0 03f0 03f0  [07]   01468dc8    01f64 - (busy)

Use any UsrPtr column value from the listed output, and then use the the command !heap -p -a UsrPtr to display the call stack for UsrPtr. I have selected 0143d8c8 marked in bold.

Upon execution of !heap -p -a 0143d8c8, we get the call stack shown below:

Collapse | Copy Code
0:001> !heap -p -a 0143d8c8      address 0143d8c8 found in     _HEAP @ 330000       HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state         0143d8c0 03f0 0000  [07]   0143d8c8    01f64 - (busy)         Trace: 0025         7c96d6dc ntdll!RtlDebugAllocateHeap+0x000000e1         7c949d18 ntdll!RtlAllocateHeapSlowly+0x00000044         7c91b298 ntdll!RtlAllocateHeap+0x00000e64         102c103e MSVCR90D!_heap_alloc_base+0x0000005e         102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6         102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f         102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c         102db25b MSVCR90D!malloc+0x0000001b         102bd691 MSVCR90D!operator new+0x00000011         102bd71f MSVCR90D!operator new[]+0x0000000f         4113d8 Test2!AllocateMemory+0x00000028         41145c Test2!wmain+0x0000002c         411a08 Test2!__tmainCRTStartup+0x000001a8         41184f Test2!wmainCRTStartup+0x0000000f         7c816fd7 kernel32!BaseProcessStart+0x00000023

The lines marked in bold shows the functions from our code.

Note: Sometimes, it might happen that the “!heap -s” command does not show a growing heap. In that case, use the “!heap -stat -h” command to list all the heaps with their sizes and number of blocks. Spot the growing number of blocks, and then use the “!heap –flt s SIZE” (SIZE = the size of the suspected block) command.



dyh 2013-06-19 16:22 鍙戣〃璇勮
]]>
鐞嗚В COM 濂楅棿 (杞嚜VCKBase)http://m.shnenglu.com/stdyh/archive/2013/06/11/200940.htmldyhdyhTue, 11 Jun 2013 07:24:00 GMThttp://m.shnenglu.com/stdyh/archive/2013/06/11/200940.htmlhttp://m.shnenglu.com/stdyh/comments/200940.htmlhttp://m.shnenglu.com/stdyh/archive/2013/06/11/200940.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/200940.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/200940.html闃呰鍏ㄦ枃

dyh 2013-06-11 15:24 鍙戣〃璇勮
]]>
Bloom filter錛氬ぇ鏁版嵁蹇熸帓闄ょ畻娉?zz)http://m.shnenglu.com/stdyh/archive/2013/01/25/197564.htmldyhdyhFri, 25 Jan 2013 08:15:00 GMThttp://m.shnenglu.com/stdyh/archive/2013/01/25/197564.htmlhttp://m.shnenglu.com/stdyh/comments/197564.htmlhttp://m.shnenglu.com/stdyh/archive/2013/01/25/197564.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/197564.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/197564.htmlhttp://www.xiuwz.com/site/tech-bloom-filter/

Bloom filter鏄?鐢?Howard Bloom鍦?1970 騫存彁鍑虹殑涓縐嶅鍝堝笇鍑芥暟鏄犲皠鐨勫揩閫熸煡鎵劇畻娉曪紝璇ョ畻娉曡兘澶熷湪闈炲父蹇熺殑鍒ゅ畾鏌愪釜鍏冪礌鏄惁鍦ㄤ竴涓泦鍚堜箣澶栥傝繖縐嶆嫻嬪彧浼氬鍦ㄩ泦鍚堝唴鐨勬暟鎹敊鍒わ紝鑰屼笉浼氬涓嶆槸闆?鍚堝唴鐨勬暟鎹繘琛岄敊鍒わ紝榪欐牱姣忎釜媯嫻嬭姹傝繑鍥炴湁“鍦ㄩ泦鍚堝唴錛堝彲鑳介敊璇級”鍜?#8220;涓嶅湪闆嗗悎鍐咃紙緇濆涓嶅湪闆嗗悎鍐咃級”涓ょ鎯呭喌銆傜洰鍓?a title="Bloom filter" >Bloom filter鍦ㄥ垎甯冨紡緋葷粺涓湁鐫騫挎硾鐨勪嬌鐢紝姣斿璇碐FS/HDFS/Cassandra/Bigtable/Squid銆?/p>

瀹炰緥

涓轟簡璇存槑Bloom filter瀛樺湪鐨勯噸瑕佹剰涔夛紝涓句竴涓疄渚嬶細

鍋囪瑕佷綘鍐欎竴涓綉緇滆湗铔涳紙web crawler錛夈傜敱浜庣綉緇滈棿鐨勯摼鎺ラ敊緇煎鏉傦紝铚樿洓鍦ㄧ綉緇滈棿鐖寰堝彲鑳戒細褰㈡垚“鐜?#8221;銆備負浜嗛伩鍏嶅艦鎴?#8220;鐜?#8221;錛屽氨闇瑕佺煡閬撹湗铔涘凡緇忚闂繃閭d簺URL銆傜粰涓涓猆RL錛屾庢牱鐭ラ亾铚樿洓鏄惁宸茬粡璁塊棶榪囧憿錛熺◢寰兂鎯籌紝灝變細鏈夊涓嬪嚑縐嶆柟妗堬細

  1. 灝嗚闂繃鐨刄RL淇濆瓨鍒版暟鎹簱銆?/li>
  2. 鐢℉ashSet灝嗚闂繃鐨刄RL淇濆瓨璧鋒潵銆傞偅鍙渶鎺ヨ繎O(1)鐨勪唬浠峰氨鍙互鏌ュ埌涓涓猆RL鏄惁琚闂繃浜嗐?/li>
  3. URL緇忚繃MD5鎴朣HA-1絳夊崟鍚戝搱甯屽悗鍐嶄繚瀛樺埌HashSet鎴栨暟鎹簱銆?/li>
  4. Bit-Map鏂規硶銆傚緩绔嬩竴涓狟itSet錛屽皢姣忎釜URL緇忚繃涓涓搱甯屽嚱鏁版槧灝勫埌鏌愪竴浣嶃?/li>

鏂規硶1~3閮芥槸灝嗚闂繃鐨刄RL瀹屾暣淇濆瓨錛屾柟娉?鍒欏彧鏍囪URL鐨勪竴涓槧灝勪綅銆?/p>

浠ヤ笂鏂規硶鍦ㄦ暟鎹噺杈冨皬鐨勬儏鍐典笅閮借兘瀹岀編瑙e喅闂錛屼絾鏄綋鏁版嵁閲忓彉寰楅潪甯稿簽澶ф椂闂灝辨潵浜嗐?/p>

鏂規硶1鐨勭己鐐癸細鏁版嵁閲忓彉寰楅潪甯稿簽澶у悗鍏崇郴鍨嬫暟鎹簱鏌ヨ鐨勬晥鐜囦細鍙樺緱寰堜綆銆傝屼笖姣忔潵涓涓猆RL灝卞惎鍔ㄤ竴嬈℃暟鎹簱鏌ヨ鏄笉鏄お灝忛澶у仛浜嗭紵

鏂規硶2鐨勭己鐐癸細澶秷鑰楀唴瀛樸傞殢鐫URL鐨勫澶氾紝鍗犵敤鐨勫唴瀛樹細瓚婃潵瓚婂銆傚氨綆楀彧鏈?浜夸釜URL錛屾瘡涓猆RL鍙畻50涓瓧絎︼紝灝遍渶瑕?GB鍐呭瓨銆?/p>

鏂規硶3錛氱敱浜庡瓧絎︿覆緇忚繃MD5澶勭悊鍚庣殑淇℃伅鎽樿闀垮害鍙湁128Bit錛孲HA-1澶勭悊鍚庝篃鍙湁160Bit錛屽洜姝ゆ柟娉?姣旀柟娉?鑺傜渷浜嗗ソ鍑犲嶇殑鍐呭瓨銆?/p>

鏂規硶4娑堣楀唴瀛樻槸鐩稿杈冨皯鐨勶紝浣嗙己鐐規槸鍗曚竴鍝堝笇鍑芥暟鍙戠敓鍐茬獊鐨勬鐜囧お楂樸傝繕璁板緱鏁版嵁緇撴瀯璇句笂瀛﹁繃鐨凥ash琛ㄥ啿紿佺殑鍚勭瑙e喅鏂規硶涔堬紵鑻ヨ闄嶄綆鍐茬獊鍙戠敓鐨勬鐜囧埌1%錛屽氨瑕佸皢BitSet鐨勯暱搴﹁緗負URL涓暟鐨?00鍊嶃?/p>

瀹炶川涓婁笂闈㈢殑綆楁硶閮藉拷鐣ヤ簡涓涓噸瑕佺殑闅愬惈鏉′歡錛氬厑璁稿皬姒傜巼鐨勫嚭閿欙紝涓嶄竴瀹氳100%鍑嗙‘錛佷篃灝辨槸璇村皯閲弖rl瀹為檯涓婃病鏈夋病緗戠粶铚樿洓璁塊棶錛岃屽皢瀹冧滑閿欏垽涓哄凡璁塊棶鐨勪唬浠鋒槸寰堝皬鐨?#8212;—澶т笉浜嗗皯鎶撳嚑涓綉欏靛憲銆?/p>

Bloom Filter鐨勭畻娉?/h3>

涓嬮潰寮曞叆鏈瘒鐨勪富瑙?#8212;—Bloom filter銆傚叾瀹炰笂闈㈡柟娉?鐨勬濇兂宸茬粡寰堟帴榪?a title="Bloom filter" >Bloom filter浜嗐傛柟娉曞洓鐨勮嚧鍛界己鐐規槸鍐茬獊姒傜巼楂橈紝涓轟簡闄嶄綆鍐茬獊鐨勬蹇碉紝Bloom filter浣跨敤浜嗗涓搱甯屽嚱鏁幫紝鑰屼笉鏄竴涓?/strong>銆?/p>

Bloom filter閲?鐢ㄧ殑鏄搱甯屽嚱鏁扮殑鏂規硶錛屽皢涓涓厓绱犳槧灝勫埌涓涓?m 闀垮害鐨勯樀鍒椾笂鐨勪竴涓偣錛屽綋榪欎釜鐐規槸 1 鏃訛紝閭d箞榪欎釜鍏冪礌鍦ㄩ泦鍚堝唴錛屽弽涔嬪垯涓嶅湪闆嗗悎鍐呫傝繖涓柟娉曠殑緙虹偣灝辨槸褰撴嫻嬬殑鍏冪礌閲忓緢澶氭椂鍊欏彲鑳芥湁鍐茬獊錛岃В鍐蟲柟娉曞氨鏄嬌鐢?k 涓搱甯?鍑芥暟瀵瑰簲 k 涓偣錛屽鏋滄墍鏈夌偣閮芥槸 1 鐨勮瘽錛岄偅涔堝厓绱犲湪闆嗗悎鍐咃紝濡傛灉鏈?0 鐨勮瘽錛屽厓绱犲垯涓嶅啀闆嗗悎鍐呫?/p>

Bloom filter 鐗圭偣

Bloom filter浼樼偣灝辨槸瀹冪殑鎻掑叆鍜屾煡璇㈡椂闂撮兘鏄父鏁幫紝鍙﹀瀹冩煡璇㈠厓绱犲嵈涓嶄繚瀛樺厓绱犳湰韜紝鍏鋒湁鑹ソ鐨勫畨鍏ㄦс傚畠鐨勭己鐐逛篃鏄樉鑰屾槗瑙佺殑錛?strong>褰撴彃鍏ョ殑鍏冪礌瓚婂錛岄敊鍒?#8220;鍦ㄩ泦鍚堝唴”鐨勬鐜囧氨瓚婂ぇ浜?/strong>錛屽彟澶?Bloom filter涔熶笉鑳藉垹闄や竴涓厓绱狅紝鍥犱負澶氫釜鍏冪礌鍝堝笇鐨勭粨鏋滃彲鑳藉湪 Bloom filter 緇撴瀯涓崰鐢ㄧ殑鏄悓涓涓綅錛屽鏋滃垹闄や簡涓涓瘮鐗逛綅錛屽彲鑳戒細褰卞搷澶氫釜鍏冪礌鐨勬嫻嬨?/p>

鍏跺疄瑕佸仛鍒拌兘澶熷垹闄や竴涓厓绱狅紝灝遍渶瑕佷慨鏀逛笅綆楁硶錛?strong>鎶奲itmap淇敼鎴愯鏁?/strong>錛岃繖浼氬甫鏉ュ彟澶栦竴涓己鐐癸細鍐呭瓨嫻垂銆?/p>



dyh 2013-01-25 16:15 鍙戣〃璇勮
]]>
C++寮傚父鎬葷粨http://m.shnenglu.com/stdyh/archive/2012/11/30/195828.htmldyhdyhFri, 30 Nov 2012 07:58:00 GMThttp://m.shnenglu.com/stdyh/archive/2012/11/30/195828.htmlhttp://m.shnenglu.com/stdyh/comments/195828.htmlhttp://m.shnenglu.com/stdyh/archive/2012/11/30/195828.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/195828.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/195828.html1. 鎶涘嚭鐨勫紓甯稿璞′笉搴旇鏄寚閽堢被鍨?/div>
鍥犱負鎸囬拡鎸囧悜鐨勫璞$殑鍒犻櫎鍜屾瀽鏋勭敱璋佹潵澶勭悊錛屼粈涔堟椂鍊欐墽琛岋紝閮芥槸鏃犳硶紜畾鐨勪簨鎯咃紝C++涔熸病鏈夊畾涔夛紝姣斿鍫嗗拰鏍堜笂鐨勫璞$殑澶勭悊鏂瑰紡蹇呯劧涓嶄竴鏍?br />
2. 涓嶈兘鏄懼紡鍦版妸NULL浣滀負寮傚父瀵硅薄鎶涘嚭
鍥犱負throw(NULL)=tbrow(0)錛屽洜姝ULL浼氳褰撲綔鏁村瀷鎹曡幏錛岃屼笉鏄┖鎸囬拡甯擱噺錛岃繖鍙兘涓庣▼搴忓憳鐨勯鏈熶笉涓鑷?br />
3. 濡傛灉涓涓嚱鏁板0鏄庢椂鎸囧畾浜嗗叿浣撶殑寮傚父綾誨瀷錛岄偅涔堝畠鍙兘鎶涘嚭鎸囧畾綾誨瀷鐨勫紓甯?/div>
鍑芥暟鐨勪唬鐮佺粨鏋勫涓嬶細榪斿洖鍊肩被鍨嬪嚱鏁板悕(褰㈠弬琛?throw(綾誨瀷鍚嶈〃){鍑芥暟浣搣
int A() throw(myexception, int)  -- 鍙兘鎶涘嚭myexception鍜宨nt涓ょ綾誨瀷鐨勫紓甯?/div>
int A() throw()                  -- 涓嶆姏鍑轟換浣曞紓甯?/div>
int A()                          -- 鍙互鎶涘嚭浠諱綍寮傚父錛屼篃鍙互涓嶆姏鍑哄紓甯?/div>
鍑芥暟鍘熷瀷涓殑寮傚父澹版槑瑕佷笌瀹炵幇涓殑寮傚父澹版槑涓鑷達紝鍚﹀垯浼氬紩璧峰紓甯稿啿紿併傜敱浜庡紓甯告満鍒舵槸鍦ㄨ繍琛屽嚭鐜板紓甯告椂鎵嶅彂鎸ヤ綔鐢ㄧ殑錛屽洜姝ゅ鏋滃嚱鏁扮殑瀹炵幇涓姏鍑轟簡娌℃湁鍦ㄥ叾寮傚父澹版槑鍒楄〃涓垪鍑虹殑寮傚父錛岀紪璇戝櫒涔熻涓嶈兘媯鏌ュ嚭鏉ャ傚綋鎶涘嚭涓涓湭鍦ㄥ叾寮傚父澹版槑鍒楄〃閲岀殑寮傚父綾誨瀷鏃訛紝unexpected()鍑芥暟浼氳璋冪敤錛岄粯璁や細瀵艱嚧std::bad_exception綾誨瀷鐨勫紓甯歌鎶涘嚭銆傚鏋渟td::bad_exception涓嶅湪寮傚父澹版槑鍒楄〃閲岋紝鍙堜細瀵艱嚧terminate()琚皟鐢紝浠庤屽鑷寸▼搴忕粨鏉?br />
4. 寮傚父鍙兘鍦ㄥ垵濮嬪寲涔嬪悗鑰屼笖紼嬪簭緇撴潫涔嬪墠鎶涘嚭
5. throw璇彞涓殑琛ㄨ揪寮忔湰韜笉鑳藉紩鍙戞柊鐨勫紓甯?br />
6. 絀虹殑throw璇彞鍙兘鍑虹幇鍦╟atch璇彞鍧椾腑
絀虹殑throw鐢ㄦ潵灝嗘崟鑾風殑寮傚父鍐嶆姏鍑猴紝鍙互瀹炵幇澶氫釜澶勭悊紼嬪簭闂紓甯哥殑浼犻掋傜劧鑰岋紝濡傛灉鍦╟atch璇彞澶栫敤錛岀敱浜庢病鏈夋崟鑾峰埌寮傚父錛屼篃灝辨病鏈変笢瑗垮彲浠ュ啀鎶涘嚭錛岃繖鏍蜂細瀵艱嚧紼嬪簭浠ヤ笉瀹氱殑鏂瑰紡緇堟(榪欎緷璧栧叿浣撶殑緙栬瘧鍣?
7. 鍏稿瀷鐨則ry-catch緇撴瀯搴旇鏄淳鐢熸淳鍦ㄦ渶鍓嶉潰錛屽熀綾誨湪鍚庯紝鏈鍚庢槸...
8. catch鐨勫鐞嗛『搴忎負浠庝笂鍒頒笅錛屽彧瑕佹壘鍒頒竴涓尮閰嶇殑寮傚父綾誨瀷錛屽悗闈㈢殑寮傚父澶勭悊閮借蹇界暐
9. 鑻ュ紓甯稿璞′負綾葷殑瀵硅薄鏃訛紝搴旇閫氳繃寮曠敤鏉ユ崟鑾?/div>
鑻ヤ笉鏄敤寮曠敤錛屽垯媧劇敓綾誨璞℃繪槸浼氳鎴柇鎴愪負鍩虹被瀵硅薄


dyh 2012-11-30 15:58 鍙戣〃璇勮
]]>紼嬪簭鍛橀潰璇曟敾鐣ョ瑪璁?/title><link>http://m.shnenglu.com/stdyh/archive/2012/11/28/195762.html</link><dc:creator>dyh</dc:creator><author>dyh</author><pubDate>Wed, 28 Nov 2012 07:47:00 GMT</pubDate><guid>http://m.shnenglu.com/stdyh/archive/2012/11/28/195762.html</guid><wfw:comment>http://m.shnenglu.com/stdyh/comments/195762.html</wfw:comment><comments>http://m.shnenglu.com/stdyh/archive/2012/11/28/195762.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/stdyh/comments/commentRss/195762.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/stdyh/services/trackbacks/195762.html</trackback:ping><description><![CDATA[澶嶄範涓涓?lt;紼嬪簭鍛橀潰璇曟敾鐣?gt;,騫惰褰曚竴浜涘績寰?<br /> <br /> <u style="font-size: 14pt; color: red;"><strong>閾捐〃:</strong></u><br /> 1. 鎵懼埌鍗曢摼琛ㄤ腑鍊掓暟絎琺涓厓绱?br /> 鏂規硶錛氫嬌鐢ㄤ袱涓寚閽堬紝榪欎袱涓寚閽堢浉璺漨涓厓绱狅紝鐒跺悗浣垮緱涓や釜鎸囬拡鍚屾鍓嶈繘錛屽綋鍚庝竴涓寚閽堝埌絀烘椂錛屽墠涓涓寚閽堝嵆涓哄掓暟絎琺涓厓绱?br /> 瀹炵幇錛?br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">elem* FindMToLastElem(elem* head, <span style="color: #0000ff;">int</span> m)<br /> {<br />     elem* current, mbehind;<br />     current = head;<br />     <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=0; i<m; i++)<br />     {<br />         <span style="color: #0000FF; ">if</span>(current->next)<br />         {<br />             current = current->next;<br />         }<br />         <span style="color: #0000FF; ">else</span><br />         {<br />             <span style="color: #0000FF; ">return</span> NULL;<br />         }<br />     }<br />     <br />     mbehind = head;<br />     <span style="color: #0000FF; ">while</span>(current->next)<br />     {<br />         current = current->next;<br />         mbehind = mbehind->next;<br />     }<br /> <br />     <span style="color: #0000FF; ">return</span> mbehind;<br /> }</div> <br /> 2. 鍒ゆ柇涓涓摼琛ㄤ負寰幆閾捐〃榪樻槸闈炲驚鐜摼琛?br /> <img src="http://m.shnenglu.com/images/cppblog_com/stdyh/linktable.PNG" width="674" height="348" alt="" /><br /> 鏂規硶錛氫嬌鐢ㄥ揩鎱㈡寚閽堬紝蹇寚閽堟瘡嬈¤蛋涓ゆ錛屾參鎸囬拡姣忔璧頒竴姝ワ紝鑻ュ揩鎸囬拡鍒拌揪NULL錛屽垯涓洪潪寰幆閾捐〃錛岃嫢蹇寚閽堣秴榪囦簡鎱㈡寚閽堬紝鍒欎負寰幆閾捐〃<br /> 瀹炵幇錛?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">int</span> determin_termination(node* head)<br /> {<br />     node* fast, slow;<br />     <span style="color: #0000FF; ">if</span>(!head || !(head->next))<br />     {<br />         <span style="color: #0000FF; ">return</span> 0;<br />     }<br />     fast = head->next->next;<br />     slow = head->next;<br />     <span style="color: #0000FF; ">while</span>(1)<br />     {<br />         <span style="color: #0000FF; ">if</span>(!fast || !(fast->next))<br />         {<br />             <span style="color: #0000FF; ">return</span> 0;<br />         }<br />         <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span>(fast == slow || fast->next == slow)<br />         {<br />             <span style="color: #0000FF; ">return</span> 1;<br />         }<br />         <span style="color: #0000FF; ">else</span><br />         {<br />             fast = fast->next->next;<br />             slow = slow->next;<br />         }<br />     }<br /> }</div> <br /> <u style="font-size: 14pt; color: red;"><strong>鏍戝拰鍥?<br /> </strong></u>1. 浜屽弶鏍戝墠搴忛亶鍘嗙殑闈為掑綊綆楁硶<br /> 鏂規硶錛氫嬌鐢ㄥ爢鏍?br /> 瀹炵幇錛?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">void</span> PreorderTraversal(node* head)<br /> {<br />     elem* stack;<br />     CreateStack(&stack);<br />     Push(&stack, head);<br />     <br />     node* pNode;<br />     <span style="color: #0000FF; ">while</span>(Pop(&stack, &pNode)<br />     {<br />         <span style="color: #0000FF; ">if</span>(NULL != pNode)<br />         {<br />             printf("%d\n", pNode->value);<br />             Push(&stack, pNode->right);<br />             Push(&stack, pNode->left);<br />         }<br />     }<br />     DeleteStack(&stack);<br /> }</div> <br /> <strong style="color: red; font-size: 14pt;"><u>鏁扮粍鍜屽瓧絎︿覆:</u></strong><br /> 1. 楂樻晥鍒犻櫎鐗瑰畾瀛楃<br /> 鏂規硶錛氭瘡嬈″垹闄ゅ瓧絎︽椂涓嶅湪鏁扮粍涓Щ鍔ㄥ瓧絎︿覆錛岃屾槸鐩存帴鎷瘋礉鍒頒箣鍓嶆壂鎻忚繃鐨勪綅緗腑銆傚彟澶栭噰鐢ㄦ暟緇勬潵鍑忓皯瀛楃涓叉瘮杈冩鏁般?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">void</span> RemoveChars(<span style="color: #0000FF; ">char</span> str[], <span style="color: #0000FF; ">char</span> remove[])<br /> {<br />     <span style="color: #008000; ">//</span><span style="color: #008000; "> create an array for remove characters</span><span style="color: #008000; "><br /> </span>    <span style="color: #0000FF; ">char</span> removeArray[256];<br />     <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=0; i<256; i++)<br />     {<br />         removeArray[i] = 0;<br />     }<br />     <span style="color: #0000FF; ">int</span> src = 0;<br />     <span style="color: #0000FF; ">while</span>(remove[src])<br />     {<br />         removeArray[remove[src]] = 1;<br />         src++;<br />     }<br />     <span style="color: #0000FF; ">int</span> dest = 0;<br />     src = 0;<br />     <span style="color: #0000FF; ">do</span><br />     {<br />         <span style="color: #0000FF; ">if</span>(!removeArray[remove[src]])<br />         {<br />             str[dest++] = str[src];<br />         }<br />     }<span style="color: #0000FF; ">while</span>(str[src++]);<br />     <br /> }</div> <br />2. 棰犲掑崟璇嶅嚭鐜扮殑嬈″簭<br />Do or do not, there is no try. 杞崲涓?try. no is there not, do or Do<br />鏂規硶錛氬厛灝嗘暣涓瓧絎︿覆棰犲掞紝鍐嶅皢鏂板瓧絎︿覆涓殑姣忎釜鍗曡瘝棰犲?br /><br />3. 緙栧啓瀛楃涓插拰鏁板瓧鐩鎬簰杞崲鍑芥暟<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">int</span> Str2Int(<span style="color: #0000FF; ">char</span>* str)<br />{<br />    <span style="color: #0000FF; ">int</span> num = 0, neg = 1, i = 0;<br />    <span style="color: #0000FF; ">if</span>(str[0] == '-')<br />    {<br />        neg = -1;<br />        i = 1;<br />    }<br />    <br />    <span style="color: #0000FF; ">while</span>(str[i])<br />    {<br />        num = num * 10 + str[i++] - '0';<br />    }<br />    num = num * neg;<br />    <span style="color: #0000FF; ">return</span> num;<br />}<br /><br /><span style="color: #0000FF; ">void</span> Int2Str(<span style="color: #0000FF; ">int</span> num, <span style="color: #0000FF; ">char</span> str[])<br />{<br />    <span style="color: #0000FF; ">int</span> neg = 1;<br />    <span style="color: #0000FF; ">if</span>(num < 0)<br />    {<br />        num *= -1;<br />        neg = -1;<br />    }<br />    <br />    <span style="color: #0000FF; ">int</span> i = 0;<br />    <span style="color: #0000FF; ">do</span><br />    {<br />        str[i++] = num % 10 + '0';<br />        num = num / 10;<br />    }<span style="color: #0000FF; ">while</span>(num)<br /><br />    <span style="color: #0000FF; ">if</span>(neg == -1)<br />    {<br />        str[i++] = '-';<br />    }<br />    str[i] = 0;<br />    <br />    <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> j = 0; j < i/2; j++)<br />    {<br />        str[j] = str[i-1-j];<br />    }<br />    <br />}</div><img src ="http://m.shnenglu.com/stdyh/aggbug/195762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/stdyh/" target="_blank">dyh</a> 2012-11-28 15:47 <a href="http://m.shnenglu.com/stdyh/archive/2012/11/28/195762.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞鐢ㄤ袱涓爤瀹炵幇涓涓槦鍒椻斺旀垜浣滀負闈㈣瘯瀹樼殑灝忕粨http://m.shnenglu.com/stdyh/archive/2012/11/16/195273.htmldyhdyhFri, 16 Nov 2012 08:12:00 GMThttp://m.shnenglu.com/stdyh/archive/2012/11/16/195273.htmlhttp://m.shnenglu.com/stdyh/comments/195273.htmlhttp://m.shnenglu.com/stdyh/archive/2012/11/16/195273.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/195273.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/195273.html

涓ゅ勾鍓嶄粠緗戜笂鐪嬪埌涓閬撻潰璇曢錛氱敤涓や釜鏍堬紙Stack錛夊疄鐜頒竴涓槦鍒楋紙Queue錛夈傝寰椾笉閿欙紝灝辯粡甯告嬁鏉ラ潰璇曪紝鍑犲勾涓嬫潵錛屽仛姝ら鐨勫簲璇ユ湁鍑犲崄浜轟簡銆傞氳繃瀵歸潰璇曡呯殑琛ㄧ幇鍜屽弽搴旓紝鏈変竴浜涚粺璁″拰鎰熷彈錛屽湪姝ゅ仛涓皬緇撱?/span>

 

鐢?/span>C++鎻忚堪錛岄鐩ぇ鑷存槸榪欐牱鐨勶細

 

宸茬煡涓嬮潰Stack綾誨強鍏?/span>3涓柟娉?/span>Push銆?/span>Pop鍜?/span> Count錛岃鐢?/span>2涓?/span>Stack瀹炵幇Queue綾葷殑鍏ラ槦(Enqueue)鍑洪槦(Dequeue)鏂規硶銆?/span>

 

class Stack

{

public:

         void Push(int x); // Push an element in stack;

         int Pop();  // Pop an element out of stack;

         int Count() const;     // Return the number of the elements in stack;

};

 

class Queue

{

public:

         void Enqueue(int x);

         int Dequeue();

 

private:

         Stack s1;

         Stack s2;

};

 

榪欓亾棰樺簲璇ヤ笉綆楅毦錛屾瘮璧楓婄紪紼嬩箣緹庛嬩腑寰蔣閭d簺浠涔?#8220;緲葷儥楗?#8221;鐨勯潰璇曢錛岄毦搴︿笂宸繙浜嗐傚喌涓旓紝鐢變簬鏃墮棿鍏崇郴錛屾垜涓鑸篃涓嶈姹傞潰璇曡呭啓浠g爜錛屽彧鎻忚堪娓呮鎬濊礬鍗沖彲銆傚嚭榪欓亾棰橈紝涓昏鑰冨療3鐐癸細

 

1.       鍦ㄧ煭鏃墮棿鍐咃紝鑳戒笉鑳芥壘鍒拌В鍐寵繖閬撻鐨勮凍澶熸竻鏅扮殑鎬濊礬錛堟濈淮鏄惁鏁忔嵎銆佹竻鏅幫級銆?/span>

2.       鑳戒笉鑳藉湪鍗曞悜琛ㄨ堪涓紝娓呮鍦版弿榪拌嚜宸辯殑鎬濊礬鍜屾兂娉曪紙琛ㄨ堪鑳藉姏鏄惁杈懼埌瑕佹眰錛夈?/span>

3.       瀵逛簬鏌愪簺鍏蜂綋緇嗚妭錛岃兘涓嶈兘鑰冭檻鍒幫紙鏄惁瓚沖緇嗚嚧錛夈?/span>

 

鎬諱綋涓婏紝浠?/span>10浜轟負渚嬶紝瀹為檯鐨勭粨鏋滃ぇ鑷存槸錛?/span>

 

1.       8涓漢鍙互鎵懼埌瑙e喅絳旀錛?/span>2涓漢鏃犳硶鎵懼埌絳旀錛堝嵆浣胯繘琛屼簡蹇呰鐨勬彁紺猴紝鏇劇粡鏈変綅鍙風О緹庡浗MIT娣遍?/span>2騫達紝涔嬪悗鍦?/span>Google緹庡浗鍏徃宸ヤ綔榪?/span>8涓湀鐨勫厔寮燂紝涔熸病鍋氬嚭鏉ワ級銆?/span>

2.       8涓壘鍒扮瓟妗堢殑浜轟腑錛?/span>6涓壘鍒扮殑鏂規硶鐩稿悓錛?/span>2涓漢鎵懼埌鍏跺畠鍙樼銆?/span>

3.       鍦ㄨ繖8涓漢涓紝鏈?/span>1涓漢鍙互涓嶇粡鎻愮ず錛屽悓鏃舵兂鍒板ぇ浼楁柟娉曞拰鍙樼銆?/span>

 

澶у鏁頒漢鐨勬濊礬鏄細濮嬬粓緇存姢s1浣滀負瀛樺偍絀洪棿錛屼互s2浣滀負涓存椂緙撳啿鍖恒?/span>

鍏ラ槦鏃訛紝灝嗗厓绱犲帇鍏?/span>s1銆?/span>

鍑洪槦鏃訛紝灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”錛堝脊鍑哄茍鍘嬪叆錛?/span>s2錛屽皢s2鐨勯《鍏冪礌寮瑰嚭浣滀負鍑洪槦鍏冪礌錛屼箣鍚庡啀灝?/span>s2鍓╀笅鐨勫厓绱犻愪釜“鍊掑洖”s1銆?/span>

瑙佷笅闈㈢ず鎰忓浘錛?/span>

 

2Stacks1Queue

 

涓婅堪鎬濊礬錛屽彲琛屾ф瘚搴哥疆鐤戙備絾鏈変竴涓粏鑺傛槸鍙互浼樺寲涓涓嬬殑銆傚嵆錛氬湪鍑洪槦鏃訛紝灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”s2鏃訛紝鍘熷湪s1鏍堝簳鐨勫厓绱狅紝涓嶇敤“鍊掑叆”s2錛堝嵆鍙?#8220;鍊?#8221;s1.Count()-1涓級錛屽彲鐩存帴寮瑰嚭浣滀負鍑洪槦鍏冪礌榪斿洖銆傝繖鏍峰彲浠ュ噺灝戜竴嬈″帇鏍堢殑鎿嶄綔銆傜害鏈変竴鍗婁漢錛岀粡鎻愮ず鍚庤兘鎰忚瘑鍒版闂銆?/span>

 

涓婅堪鎬濊礬錛屾湁浜涘彉縐嶏紝濡傦細

鍏ラ槦鏃訛紝鍏堝垽鏂?/span>s1鏄惁涓虹┖錛屽涓嶄負絀猴紝璇存槑鎵鏈夊厓绱犻兘鍦?/span>s1錛屾鏃跺皢鍏ラ槦鍏冪礌鐩存帴鍘嬪叆s1錛涘涓虹┖錛岃灝?/span>s2鐨勫厓绱犻愪釜“鍊掑洖”s1錛屽啀鍘嬪叆鍏ラ槦鍏冪礌銆?/span>

鍑洪槦鏃訛紝鍏堝垽鏂?/span>s2鏄惁涓虹┖錛屽涓嶄負絀猴紝鐩存帴寮瑰嚭s2鐨勯《鍏冪礌騫跺嚭闃燂紱濡備負絀猴紝灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”s2錛屾妸鏈鍚庝竴涓厓绱犲脊鍑哄茍鍑洪槦銆?/span>

鏈変簺浜鴻兘鍚屾椂鎯沖埌澶т紬鏂規硶鍜屽彉縐嶏紝搴旇璇村ご鑴戣繕鏄瘮杈冪伒鍏夌殑銆?/span>

 

鐩稿浜庣涓縐嶆柟娉曪紝鍙樼鐨?/span>s2濂藉儚姣旇緝“鎳?#8221;錛屾瘡嬈″嚭闃熷悗錛屽茍涓嶅皢鍏冪礌“鍊掑洖”s1錛屽鏋滆刀涓婁笅嬈¤繕鏄嚭闃熸搷浣滐紝鏁堢巼浼氶珮涓浜涳紝浣嗕笅嬈″鏋滄槸鍏ラ槦鎿嶄綔錛屾晥鐜囦笉濡傜涓縐嶆柟娉曘傛垜鏈夋椂浼氳闈㈣瘯鑰呭垎鏋愭瘮杈冧笉鍚屾柟娉曠殑鎬ц兘銆傛垜鎰熻錛堟病鍋氭繁鍏ョ爺絀訛級錛屽叆闃熴佸嚭闃熸搷浣滈殢鏈哄垎甯冩椂錛屼笂榪頒袱縐嶆柟娉曟諱綋涓婃椂闂村鏉傚害鍜岀┖闂村鏉傚害搴旇鐩稿樊鏃犲嚑錛堟棤闈炲涓皯涓垽鏂級銆?/span>

 

鐪熸鎬ц兘杈冮珮鐨勶紝鍏跺疄鏄彟涓涓彉縐嶃傚嵆錛?/span>

鍏ラ槦鏃訛紝灝嗗厓绱犲帇鍏?/span>s1銆?/span>

鍑洪槦鏃訛紝鍒ゆ柇s2鏄惁涓虹┖錛屽涓嶄負絀猴紝鍒欑洿鎺ュ脊鍑洪《鍏冪礌錛涘涓虹┖錛屽垯灝?/span>s1鐨勫厓绱犻愪釜“鍊掑叆”s2錛屾妸鏈鍚庝竴涓厓绱犲脊鍑哄茍鍑洪槦銆?/span>

榪欎釜鎬濊礬錛岄伩鍏嶄簡鍙嶅“鍊?#8221;鏍堬紝浠呭湪闇瑕佹椂鎵?#8220;鍊?#8221;涓嬈°備絾鍦ㄥ疄闄呴潰璇曚腑寰堝皯鏈変漢璇村嚭錛屽彲鑳芥槸鏃墮棿杈冨皯鐨勭紭鏁呭惂銆?/span>

 

浠ヤ笂鍑犱釜鎬濊礬涔嶇湅娌′粈涔堥棶棰樹簡錛屼絾鍏跺疄榪樻槸鏈変釜緇嗚妭瑕佽冭檻鐨勩傚叾瀹炴棤璁轟粈涔堟柟娉曞拰鎯呭喌錛岄兘瑕佽冭檻娌℃湁鍏冪礌鍙緵鍑洪槦鏃剁殑澶勭悊錛?/span>2涓爤閮戒負絀虹殑鏃跺欙紝鍑洪槦鎿嶄綔涓瀹氫細寮曡搗寮傚父錛夈傚湪瀹為檯鍐欎唬鐮佹椂錛屽拷鐣ヨ繖浜涘垽鏂垨寮傚父澶勭悊錛岀▼搴忎細鍑虹幇闂銆傛墍浠ワ紝鑳戒笉鑳借冭檻鍒拌繖浜涚粏鑺傦紝涔熶綋鐜頒簡涓漢鐨勭礌鍏匯?/span>

 

涓漢鎰熻錛岃繖閬撻紜疄鏈夊姪浜庢垜閴村埆搴旇仒鐨勪漢銆備絾瀵逛簬闈㈣瘯錛屾瘯绔熻繕鏄鐪嬮潰璇曡呯殑緇煎悎绱犺川錛屼竴閬擄紙鎴栧嚑閬擄級棰樺畾鐢熸涓嶅彲鍙栥?/span>



dyh 2012-11-16 16:12 鍙戣〃璇勮
]]>
C++ Fragmenthttp://m.shnenglu.com/stdyh/archive/2012/11/05/194562.htmldyhdyhMon, 05 Nov 2012 08:37:00 GMThttp://m.shnenglu.com/stdyh/archive/2012/11/05/194562.htmlhttp://m.shnenglu.com/stdyh/comments/194562.htmlhttp://m.shnenglu.com/stdyh/archive/2012/11/05/194562.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/194562.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/194562.html1. 妯℃澘綾葷殑瀹氫箟鍜屽疄鐜板繀欏繪斁鍦ㄥ悓涓涓ご鏂囦歡涓?br />
2. unary_function鍜宐inary_function鏄痵tl鎻愪緵鐨勪竴鍏冨拰浜屽厓鍑芥暟瀵硅薄鍩虹被錛屽瓙綾婚渶瀹炵幇()鎿嶄綔絎︼紝榪欐牱鐨勫瓙綾誨彲浠ョ敤鍦╯tl綆楁硶鍑芥暟涓紝濡俿ort, partition絳夈?div>   涓鍏冨嚱鏁板璞′緥瀛愬涓嬶細
template <typename T> 
class FilterCriterion : public unary_function<T, bool>
{

public:
    bool operator()(const T& val) const
    {
        return (val.size() > 0);
    };

};

FilterCriterion<MyType> f;
partition(vec.begin(), vec.end(), f); //瀵筂yType瀵硅薄榪涜鍒嗙被錛坰ize蹇呴』>0)
   浜屽厓鍑芥暟瀵硅薄渚嬪瓙濡備笅錛?/div>
template <class T> 
class RankCriterion : public binary_function<T, T, bool>
{
public:
bool operator()(const T& lhs, const T& rhs) const
{
return (lhs.size() > rhs.size());
};
}
RankCriterion<MyType> r;
sort(vec.begin(), vec.begin(), vec.end(), r); // 瀵筂yType瀵硅薄榪涜鎺掑簭(鎸塻ize澶у皬鎺掑簭錛?/div>
3. C++澶勭悊琛ㄨ揪寮忓彲浠ラ噰鐢ㄥ厛杞垚閫嗘嘗鍏拌〃杈懼紡錛岀劧鍚庤綆?br />http://www.cnblogs.com/adamxx/archive/2006/08/30/703267.html

4. Dll瀵煎嚭綾繪垨鍑芥暟
#ifdef SIMPLEDLL_EXPORT
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif

5. const 鎴愬憳鍑芥暟
const 鎴愬憳鍑芥暟鑾峰緱鐨勮兘鍔涳細鍙互鎿嶄綔甯擱噺瀵硅薄錛屽GetName鍑芥暟瀹氫箟涓簊tring GetName() const; 閭d箞Const A a; a.GetName();鏄兘緙栬瘧閫氳繃鐨勶紝鑻etName涓嶅畾涔変負const錛岄偅涔堜笂榪拌皟鐢ㄧ紪璇戜細澶辮觸

const鎴愬憳鍑芥暟澶卞幓鐨勮兘鍔涳細鏈夊緱蹇呮湁澶憋紝涓嶈兘淇敼綾葷殑鏁版嵁鎴愬憳錛屼笉鑳藉湪鍑芥暟涓皟鐢ㄥ叾浠栭潪const鐨勫嚱鏁?/span>

dyh 2012-11-05 16:37 鍙戣〃璇勮
]]>[杞澆]涓轟粈涔堜細鍑虹幇LNK2005"絎﹀彿宸插畾涔?鐨勯摼鎺ラ敊璇? http://m.shnenglu.com/stdyh/archive/2007/05/05/23445.htmldyhdyhSat, 05 May 2007 08:02:00 GMThttp://m.shnenglu.com/stdyh/archive/2007/05/05/23445.htmlhttp://m.shnenglu.com/stdyh/comments/23445.htmlhttp://m.shnenglu.com/stdyh/archive/2007/05/05/23445.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/23445.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/23445.html闃呰鍏ㄦ枃

dyh 2007-05-05 16:02 鍙戣〃璇勮
]]>
C++瑙f瀽XML -- TinyXmlhttp://m.shnenglu.com/stdyh/archive/2007/05/02/23316.htmldyhdyhWed, 02 May 2007 02:46:00 GMThttp://m.shnenglu.com/stdyh/archive/2007/05/02/23316.htmlhttp://m.shnenglu.com/stdyh/comments/23316.htmlhttp://m.shnenglu.com/stdyh/archive/2007/05/02/23316.html#Feedback0http://m.shnenglu.com/stdyh/comments/commentRss/23316.htmlhttp://m.shnenglu.com/stdyh/services/trackbacks/23316.htmlHomepage: http://www.grinninglizard.com/tinyxml/
download錛?a >http://sourceforge.net/projects/tinyxml

鐢╩ingw32-make鍓嶄慨鏀逛竴涓媘akefile鏂囦歡,鏀逛負濡備笅

# DEBUG can be set to YES to include debugging info, or NO otherwise(涓嶆槸DEBUG)
DEBUG          := NO

# PROFILE can be set to YES to include profiling info, or NO otherwise
PROFILE        := NO

# TINYXML_USE_STL can be used to turn on STL support. NO, then STL
# will not be used. YES will include the STL files.(浣跨敤STL,閫夋嫨鐨勮瘽錛屽垯鍙互浣跨敤std::string)
TINYXML_USE_STL := YES

涓銆?nbsp;     TinyXml鐨勭壒鐐?

TinyXml鏄竴涓熀浜嶥OM妯″瀷鐨勩侀潪楠岃瘉鐨勮交閲忕駭C++瑙i噴鍣ㄣ?/p>

1.      SAX鍜孌OM

鐩墠XML鐨勮В鏋愪富瑕佹湁涓ゅぇ妯″瀷錛歋AX鍜孌OM銆?/p>

鍏朵腑SAX鏄熀浜庝簨浠剁殑錛屽叾鍩烘湰宸ヤ綔嫻佺▼鏄垎鏋怷ML鏂囨。錛屽綋鍙戠幇浜嗕竴涓柊鐨勫厓绱犳椂錛屼駭鐢熶竴涓搴斾簨浠訛紝騫惰皟鐢ㄧ浉搴旂殑鐢ㄦ埛澶勭悊鍑芥暟銆傝繖縐嶆柟寮忓崰鐢ㄥ唴瀛樺皯錛岄熷害蹇紝浣嗙敤鎴風▼搴忕浉搴斿緱浼氭瘮杈冨鏉傘?/p>

鑰孌OM錛堟枃妗e璞℃ā鍨嬶級錛屽垯鏄湪鍒嗘瀽鏃訛紝涓嬈℃х殑灝嗘暣涓猉ML鏂囨。榪涜鍒嗘瀽錛屽茍鍦ㄥ唴瀛樹腑褰㈡垚瀵瑰簲鐨勬爲緇撴瀯錛屽悓鏃訛紝鍚戠敤鎴鋒彁渚涗竴緋誨垪鐨勬帴鍙f潵璁塊棶鍜岀紪杈戣鏍戠粨鏋勩傝繖縐嶆柟寮忓崰鐢ㄥ唴瀛樺ぇ錛岄熷害寰寰鎱簬SAX錛屼絾鍙互緇欑敤鎴鋒彁渚涗竴涓潰鍚戝璞$殑璁塊棶鎺ュ彛錛屽鐢ㄦ埛鏇翠負鍙嬪ソ銆?/p>

 

2.      楠岃瘉鍜岄潪楠岃瘉

瀵逛簬涓涓壒瀹氱殑XML鏂囨。鑰岃█錛屽叾姝g‘鎬у垎涓轟袱涓眰嬈°傞鍏堟槸鍏舵牸寮忓簲璇ョ鍚圶ML鐨勫熀鏈牸寮忚姹傦紝姣斿絎竴琛岃鏈夊0鏄庯紝鏍囩鐨勫祵濂楀眰嬈″繀欏誨墠鍚庝竴鑷寸瓑絳夛紝絎﹀悎榪欎簺瑕佹眰鐨勬枃浠訛紝灝辨槸涓涓悎鏍肩殑XML鏂囦歡錛岀О浣渨ell-formatted銆備絾闄ゆ涔嬪錛屼竴涓猉ML鏂囨。鍥犲叾鍐呭鐨勪笉鍚岃繕蹇呴』鍦ㄨ涔変笂絎﹀悎鐩稿簲鐨勬爣鍑嗭紝榪欎簺鏍囧噯鐢辯浉搴旂殑DTD鏂囦歡鎴栬匰chema鏂囦歡鏉ュ畾涔夛紝絎﹀悎浜嗚繖浜涘畾涔夎姹傜殑XML鏂囦歡錛岀О浣渧alid銆?/p>

鍥犳錛岃В鏋愬櫒涔熷垎涓轟袱縐嶏紝涓縐嶆槸楠岃瘉鐨勶紝鍗充細璺熸嵁XML鏂囦歡涓殑澹版槑錛岀敤鐩稿簲鐨凞TD鏂囦歡瀵筙ML鏂囦歡榪涜鏍¢獙錛屾鏌ュ畠鏄惁婊¤凍DTD鏂囦歡鐨勮姹傘傚彟涓縐嶆槸蹇界暐DTD鏂囦歡錛屽彧瑕佸熀鏈牸寮忔紜紝灝卞彲浠ヨ繘琛岃В鏋愩?/p>

灝辨垜鎵鐭ワ紝楠岃瘉鐨勮В鏋愬櫒閫氬父閮芥槸姣旇緝閲嶉噺綰х殑銆俆inyXml涓嶆敮鎸侀獙璇侊紝浣嗘槸浣撶Н寰堝皬錛岀敤鍦ㄨВ鏋愭牸寮忚緝涓虹畝鍗曠殑XML鏂囦歡錛屾瘮濡傞厤緗枃浠舵椂錛岀壒鍒殑鍚堥傘?/p>

 

浜屻?TinyXml鐨勬瀯寤哄拰浣跨敤
1.      鑾峰彇

TinyXml棣栭〉鍦?a >http://www.grinninglizard.com/tinyxml/index.html錛屼粠榪欓噷鍙互鎵懼埌鏈鏂扮増鏈殑婧愪唬鐮侊紝鐩墠鐨勭増鏈槸 2.4.3 (鎴嚦2006.5.17).

2.鏋勫緩

TinyXml鍦ㄦ瀯寤烘椂鍙互閫夋嫨鏄惁鏀寔STL錛岄夋嫨鐨勮瘽錛屽垯鍙互浣跨敤std::string錛屾墍浠ラ氬父搴斿湪Windows涓婏紝TinyXml鐨勬簮鐮佸寘閲屾彁渚涗簡VC6鐨勫伐紼嬫枃浠訛紝鐩存帴鐢ㄥ畠灝卞彲浠ョ敓鎴愪袱涓潤璇ユ墦寮榪欎釜閫夐」銆傛佸簱錛堝甫STL鍜屼笉甯TL錛夛紝闈炲父瀹規槗銆傚敮涓闇瑕佹敞鎰忕殑鏄紝榛樿鐢熸垚鐨勫簱鏄崟綰跨▼鐨勶紝濡傛灉鐢ㄥ湪澶氱嚎紼嬬殑欏圭洰涓紝闇瑕佹敼鍔ㄤ竴涓嬮厤緗紝鐢熸垚鐩稿簲鐨勫綰跨▼搴撱?/p>

鍦║nix騫沖彴涓婏紝TinyXml鐨勬簮鐮佸寘閲屽彧鎻愪緵浜嗕竴涓狹akefile錛屽浜庡吀鍨嬬殑Linux緋葷粺錛屾垨瑁呬簡gcc鍜実make鐨勫叾浠朥nix錛岃繖涓狹akefile瓚沖鐢ㄤ簡錛屾垜鍦≧H9鍜孯HEL4涓婃祴璇曪紝綆鍗曠殑make灝辨垚鍔熶簡銆傞渶瑕佹敞鎰忕殑鏈変互涓嬪嚑鐐癸細榛樿鐨勭紪璇戞槸涓嶆敮鎸丼TL鐨勶紝鍙互閫氳繃緙栬緫Makefile鐨凾INYXML_USE_STL := NO閭d竴琛岋紝鎶奛O鏀規垚YES灝卞彲浠ユ敮鎸丼TL浜嗭紱榪樻湁榛樿鍙敓鎴愪簡涓涓祴璇曠▼搴忥紝娌℃湁鐢熸垚浠諱綍搴擄紝濡傛灉瑕佺敓鎴愰潤鎬佸簱鐨勮瘽錛屽彲浠ョ敤ar鍛戒護錛屽皢鐢熸垚鐨勫嚑涓洰鏍囨枃浠舵墦鍖呭氨琛屼簡錛屽鏋滆鐢熸垚鍔ㄦ佸簱錛屽垯闇瑕佸姞涓?fpic鍙傛暟閲嶆柊緙栬瘧銆?/p>

3.      浣跨敤

鏋勫緩浜嗙浉搴旂殑搴撲箣鍚庯紝鍦ㄤ嬌鐢ㄤ簡瀹冧滑鐨勫伐紼嬩腑錛屽彧瑕佸湪榪炴帴鏃舵妸浠栦滑榪炰笂灝辮浜嗐傞渶瑕佹敞鎰忕殑鏄紝濡傛灉闇瑕丼TL鏀寔錛屽湪緙栬瘧鐢ㄥ埌浜員inyXml鐨勬枃浠舵椂錛岄渶瑕佸畾涔変竴涓畯TIXML_USE_STL錛屽gcc錛屽彲浠ヤ嬌鐢ㄥ弬鏁?DTIXML_USE_STL錛屽cl.exe錛圴C錛夛紝鍙互浣跨敤鍙傛暟/DTIXML_USE_STL錛屽鏋滃珜楹葷儲錛屽彲浠ョ洿鎺ュ畾涔夊湪 tinyxml.h鏂囦歡閲屻?/p>

 

涓夈?TinyXml鐨勭紪紼嬫ā鍨?br>
1.綾諱箣闂寸殑鍏崇郴

TinyXml瀹炵幇鐨勬椂DOM璁塊棶妯″瀷錛屽洜姝ゆ彁渚涗簡涓緋誨垪鐨勭被瀵瑰簲XML鏂囦歡涓殑鍚勪釜鑺傜偣銆備富瑕佺被闂寸殑鍏崇郴濡備笅鍥炬墍紺猴細

 

 

TiXmlBase錛氬叾瀹冪被鐨勫熀綾伙紝鏄釜鎶借薄綾?/p>

TiXmlNode錛氳〃紺轟竴涓妭鐐癸紝鍖呭惈鑺傜偣鐨勪竴鑸柟娉曪紝濡傝闂嚜鑺傜偣銆佸厔寮熻妭鐐廣佺紪杈戣嚜韜佺紪杈戝瓙鑺傜偣

TiXmlDocument錛氳〃紺烘暣涓猉ML鏂囨。錛屼笉瀵瑰簲鍏朵腑鏌愪釜鐗瑰畾鐨勮妭鐐廣?/p>

TiXmlElement錛氳〃紺哄厓绱犺妭鐐癸紝鍙互鍖呭惈瀛愯妭鐐瑰拰TiXmlAttribute

TiXmlComment錛氳〃紺烘敞閲?/p>

TiXmlDeclaration錛氳〃紺哄0鏄?/p>

TiXmlText錛氳〃紺烘枃鏈妭鐐?/p>

TiXmlUnknown錛氳〃紺烘湭鐭ヨ妭鐐癸紝閫氬父鏄嚭閿欎簡

TiXmlAttribute錛氳〃紺轟竴涓厓绱犵殑灞炴?/p>

涓嬮潰鏄竴涓畝鍗曠殑渚嬪瓙錛?/p>

<?xml version="1.0" encoding="utf-8" ?>

 

 

<!-This is only a sample-->

 

 

<book>

 

 

       <name>TinyXml How To</name>

 

 

       <price unit=”RMB”>20</price>

 

 

       <description>Some words…</description>

 

 

</ book >

 

 

鏁翠釜鏂囨。錛屽搴擳iXmlDocument

book,name,price, description錛岄兘瀵瑰簲TiXmlElement

絎竴琛屽搴斾竴涓猅iXmlDeclaration

絎簩琛屽搴斾竴涓猅iXmlComment

“TinyXml How To”瀵瑰簲涓涓猅iXmlText

unit鍒欐槸price鐨勪竴涓猅iXmlAttribute

榪欎簺綾諱笌XML鏂囦歡涓殑鐩稿簲鍏冪礌閮芥湁寰堝ソ鐨勫搴斿叧緋伙紝鍥犳鐩鎬俊鍙傜収TinyXml鐨勬枃妗o紝鍙互寰堝鏄撶殑鎺屾彙鍚勪釜鏂規硶鐨勪嬌鐢ㄣ?/p>

 

2.  闇瑕佹敞鎰忕殑闂

鍚勭被涔嬮棿鐨勮漿鎹?

 

 

鐢變簬鍚勪釜鑺傜偣綾婚兘浠嶵iXmlNode緇ф壙錛屽湪浣跨敤鏃跺父甯擱渶瑕佸皢TiXmlNode*綾誨瀷鐨勬寚閽堣漿鎹負鍏舵淳鐢熺被鐨勬寚閽堬紝鍦ㄨ繘琛岃繖縐嶈漿鎹㈡椂錛屽簲璇ラ鍏堜嬌鐢ㄧ敱TiXmlNode綾繪彁渚涚殑涓緋誨垪杞崲鍑芥暟錛屽ToElement(void)錛岃屼笉鏄痗++鐨刣ynamic_cast

 

媯鏌ヨ繑鍥炲?

 

 

鐢變簬TinyXml鏄竴涓潪鏍¢獙鐨勮В鏋愬櫒錛屽洜姝ゅ綋瑙f瀽涓涓枃浠舵椂錛屽緢鍙兘鏂囦歡騫朵笉鍖呭惈鎴戜滑棰勬湡鐨勬煇涓妭鐐癸紝鍦ㄨ繖縐嶆儏鍐典笅錛孴inyXml灝嗚繑鍥炵┖鎸囬拡銆傚洜姝わ紝蹇呴』瑕佸榪斿洖鍊艱繘琛屾鏌ワ紝鍚﹀垯灝嗗緢瀹規槗鍑虹幇鍐呭瓨璁塊棶鐨勯敊璇?/p>

 

濡備綍閲嶅ご寤虹珛涓涓猉ML鏂囦歡

 

 

鍏堝緩绔嬩竴涓猅iXmlDocument瀵硅薄錛岀劧鍚庯紝杞藉叆鏌愪釜妯℃澘錛屾垨鑰呯洿鎺ユ彃鍏ヤ竴涓妭鐐逛綔涓烘牴鑺傜偣錛屾帴鐫灝卞彲浠ュ儚鎵撳紑涓涓凡鏈夌殑XML鏂囦歡閭f牱瀵瑰畠榪涜鎿嶄綔浜嗐?/p>

 

鍥涖佹葷粨

TinyXml鏈澶х殑鐗圭偣灝辨槸瀹冨緢灝忥紝鍙互寰堟柟渚跨殑闈欐佽繛鎺ュ埌紼嬪簭閲屻傚浜庡儚閰嶇疆鏂囦歡銆佺畝鍗曠殑鏁版嵁鏂囦歡榪欑被鏂囦歡鐨勮В鏋愶紝瀹冨緢閫傚悎銆備絾鏄敱浜庡畠鏄潪楠岃瘉鐨勶紝鍥犳闇瑕佸湪紼嬪簭閲屽仛璁稿媯鏌ュ伐鍋氾紝鍔犻噸浜嗙▼搴忕紪鍐欑殑璐熸媴銆傚洜姝ゅ浜庡鏉傜殑XML鏂囦歡錛屾垜瑙夊緱鏈濂借繕鏄敤楠岃瘉鐨勮В鏋愬櫒鏉ュ鐞嗐?/p>



dyh 2007-05-02 10:46 鍙戣〃璇勮
]]>[杞琞C++寮婧愯法騫沖彴綾誨簱闆?/title><link>http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html</link><dc:creator>dyh</dc:creator><author>dyh</author><pubDate>Fri, 27 Apr 2007 12:48:00 GMT</pubDate><guid>http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html</guid><wfw:comment>http://m.shnenglu.com/stdyh/comments/23064.html</wfw:comment><comments>http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/stdyh/comments/commentRss/23064.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/stdyh/services/trackbacks/23064.html</trackback:ping><description><![CDATA[     鎽樿: 緇忓吀鐨凜++搴?<br> STLport-------SGI STL搴撶殑璺ㄥ鉤鍙板彲縐繪鐗堟湰錛屽湪浠ュ墠鏈変簺緙栬瘧鍣ㄧ絎﹀悎 <br> 鏍囧噯姣旇緝榪滅殑鎯呭喌涓?閭f椂榪樻槸鏈夌敤鐨勶紝褰撶劧鐩墠vc71宸茬粡姣旇緝鎺ヨ繎鏍囧噯浜嗭紝 <br> 鏁呯洰鍓嶄笉鎬庝箞鐢ㄥ畠浜嗐?<br> Boost---------鍑嗘爣鍑嗗簱錛?鍔熻兘寮哄ぇ 娑夊強鑳芥兂鐨勫埌鐨勫ぇ閮ㄥ垎闈炵壒鍒鍩熺殑綆楁硶錛?<br> 鏈変竴涓ぇ鐨凜++紺懼尯鏀寔 <br> WxWindows-----鍔熻兘寮哄ぇ鐨勮法騫沖彴GUI搴? 錛屽畠鐨勫姛鑳藉拰緇撴瀯閮界被浼?MFC錛屾晠鍘熷垯涓?<br> 鍙互閫氳繃WxWindows鎶婄幇鏈塎FC紼嬪簭縐繪鍒伴潪Win騫沖彴涓?<br> Blitz---------楂樻晥鐜囩殑鏁板艱綆楀嚱鏁板簱 ,浣犲彲浠ヨ鍒惰ˉ鍏呬綘闇瑕佺殑綆楁硶 <br> Log4cpp-------鏃ュ織澶勭悊 錛屽姛鑳界被浼糺ava涓殑log4j <br> ACE-----------鑷傚簲閫氳鐜錛?閲嶉噺綰х殑閫氳鐜搴撱?<br> Crypto++ -----鍔?瑙e瘑綆楁硶搴? 闈炲父涓撲笟鐨凜++ 瀵嗙爜瀛﹀嚱寮忓簱 <br> CppUnit --- 涓涓?nbsp; <a href='http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/stdyh/aggbug/23064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/stdyh/" target="_blank">dyh</a> 2007-04-27 20:48 <a href="http://m.shnenglu.com/stdyh/archive/2007/04/27/23064.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://www333393.com" target="_blank">韩国av一区二区三区</a>| <a href="http://my17677.com" target="_blank">久久狠狠婷婷</a>| <a href="http://785448.com" target="_blank">国产精品视频最多的网站</a>| <a href="http://163263.com" target="_blank">牛牛精品成人免费视频</a>| <a href="http://cca22.com" target="_blank">久久青草久久</a>| <a href="http://sdjzzs.com" target="_blank">久久夜色精品国产噜噜av</a>| <a href="http://dkmcjc.com" target="_blank">亚洲在线国产日韩欧美</a>| <a href="http://p54y.com" target="_blank">亚洲一级影院</a>| <a href="http://69ru.com" target="_blank">久久婷婷色综合</a>| <a href="http://www-493049.com" target="_blank">黄色在线一区</a>| <a href="http://5566kan.com" target="_blank">欧美激情影院</a>| <a href="http://qiezisp2.com" target="_blank">在线亚洲免费视频</a>| <a href="http://8eb26.com" target="_blank">国产精品99久久久久久久女警 </a>| <a href="http://aass123.com" target="_blank">欧美中在线观看</a>| <a href="http://dk13studio.com" target="_blank">欧美在线短视频</a>| <a href="http://xianjiacf.com" target="_blank">久久精品亚洲一区</a>| <a href="http://sdsankeguo.com" target="_blank">狼狼综合久久久久综合网</a>| <a href="http://548710.com" target="_blank">亚洲国产另类精品专区</a>| <a href="http://sdgs6788.com" target="_blank">裸体女人亚洲精品一区</a>| <a href="http://jiangnanmm.com" target="_blank">国产欧美日韩在线观看</a>| <a href="http://3314133.com" target="_blank">在线播放国产一区中文字幕剧情欧美</a>| <a href="http://pppp95.com" target="_blank">亚洲二区三区四区</a>| <a href="http://yeepey.com" target="_blank">亚洲一区二区三区精品视频</a>| <a href="http://derinsolar.com" target="_blank">欧美一区网站</a>| <a href="http://34ak.com" target="_blank">亚洲东热激情</a>| <a href="http://www-964664.com" target="_blank">欧美在线免费观看</a>| <a href="http://mm-777.com" target="_blank">久久一区中文字幕</a>| <a href="http://feiniao168.com" target="_blank">国产精品xxx在线观看www</a>| <a href="http://0773ye.com" target="_blank">国产一区二区日韩精品</a>| <a href="http://yw1998.com" target="_blank">亚洲国产成人91精品</a>| <a href="http://wwwgay456.com" target="_blank">亚洲福利在线视频</a>| <a href="http://chaxiangmall.com" target="_blank">夜夜嗨av一区二区三区四季av </a>| <a href="http://jm-comic3.com" target="_blank">日韩亚洲欧美在线观看</a>| <a href="http://787299.com" target="_blank">西西裸体人体做爰大胆久久久</a>| <a href="http://cnchtx.com" target="_blank">开心色5月久久精品</a>| <a href="http://www-11688.com" target="_blank">亚洲精品久久嫩草网站秘色</a>| <a href="http://qdssqt.com" target="_blank">亚洲欧美中文日韩v在线观看</a>| <a href="http://rainbowbpm.com" target="_blank">欧美呦呦网站</a>| <a href="http://www284tv.com" target="_blank">亚洲区在线播放</a>| <a href="http://chaxiangmall.com" target="_blank">久久九九精品99国产精品</a>| <a href="http://sg-lxs.com" target="_blank">欧美午夜美女看片</a>| <a href="http://yjjs20.com" target="_blank">亚洲理论在线</a>| <a href="http://anal-movie-teen.com" target="_blank">久久综合九色综合网站</a>| <a href="http://aa56789.com" target="_blank">一区二区三区免费观看</a>| <a href="http://k91cm.com" target="_blank">媚黑女一区二区</a>| <a href="http://jinlijun.com" target="_blank">国产在线精品成人一区二区三区</a>| <a href="http://maomi54.com" target="_blank">亚洲精品视频在线观看免费</a>| <a href="http://sh738.com" target="_blank">久久欧美肥婆一二区</a>| <a href="http://668756.com" target="_blank">一道本一区二区</a>| <a href="http://baoyou118.com" target="_blank">欧美福利电影在线观看</a>| <a href="http://lalandapps.com" target="_blank">一区二区在线不卡</a>| <a href="http://yiqiluntan.com" target="_blank">久久久精品免费视频</a>| <a href="http://www474000c.com" target="_blank">亚洲小视频在线</a>| <a href="http://qiaoka526.com" target="_blank">欧美日韩精品一区二区天天拍小说 </a>| <a href="http://zj-jufeng.com" target="_blank">久久婷婷蜜乳一本欲蜜臀</a>| <a href="http://wwzz3.com" target="_blank">国产精品毛片a∨一区二区三区|国</a>| <a href="http://845821.com" target="_blank">亚洲高清网站</a>| <a href="http://xunlei520.com" target="_blank">久久久免费精品</a>| <a href="http://yidaiban.com" target="_blank">久久香蕉国产线看观看av</a>| <a href="http://www01614.com" target="_blank">狠狠久久婷婷</a>| <a href="http://avse69.com" target="_blank">久久久另类综合</a>| <a href="http://l5076.com" target="_blank">午夜精品久久久久久</a>| <a href="http://devwang.com" target="_blank">国产精品日韩一区二区</a>| <a href="http://www-06654.com" target="_blank">亚洲主播在线</a>| <a href="http://551731.com" target="_blank">一区二区三区免费观看</a>| <a href="http://alio-ai.com" target="_blank">欧美日韩国产在线看</a>| <a href="http://wwwavtb2049.com" target="_blank">夜夜爽99久久国产综合精品女不卡 </a>| <a href="http://laoyewo.com" target="_blank">欧美日韩91</a>| <a href="http://spvicarb.com" target="_blank">久久一区二区三区四区五区</a>| <a href="http://zzztt04.com" target="_blank">欧美成人一区在线</a>| <a href="http://dusenborg.com" target="_blank">亚洲欧洲精品一区二区三区不卡 </a>| <a href="http://bandycup.com" target="_blank">亚洲黑丝在线</a>| <a href="http://456985.com" target="_blank">欧美国产日本</a>| <a href="http://jiejiesao8.com" target="_blank">欧美**人妖</a>| <a href="http://lgaoxiao.com" target="_blank">亚洲精品一区在线</a>| <a href="http://www22336.com" target="_blank">日韩亚洲欧美一区二区三区</a>| <a href="http://621768.com" target="_blank">欧美日韩一区二区视频在线观看</a>| <a href="http://www-77663.com" target="_blank">亚洲精品在线观</a>| <a href="http://jiujiuri8.com" target="_blank">日韩视频永久免费</a>| <a href="http://dd8uau0ncu.com" target="_blank">国产精品免费视频xxxx</a>| <a href="http://xinghejiuye.com" target="_blank">亚洲欧美中文另类</a>| <a href="http://kissgz.com" target="_blank">欧美制服丝袜</a>| <a href="http://858185gg.com" target="_blank">亚洲国产精品电影</a>| <a href="http://y3u7.com" target="_blank">亚洲高清av</a>| <a href="http://www-77663.com" target="_blank">亚洲黑丝在线</a>| <a href="http://gzpurefaith.com" target="_blank">欧美日韩天堂</a>| <a href="http://music444.com" target="_blank">欧美在线综合</a>| <a href="http://szjyf668.com" target="_blank">久久只精品国产</a>| <a href="http://681656.com" target="_blank">日韩亚洲视频</a>| <a href="http://www-188444.com" target="_blank">欧美亚男人的天堂</a>| <a href="http://580078.com" target="_blank">极品中文字幕一区</a>| <a href="http://13751144594.com" target="_blank">欧美国产日韩精品免费观看</a>| <a href="http://hczztj.com" target="_blank">欧美精品亚洲二区</a>| <a href="http://www387333.com" target="_blank">亚洲一区二区三区中文字幕</a>| <a href="http://qiansemf.com" target="_blank">亚洲女爱视频在线</a>| <a href="http://1323666.com" target="_blank">亚洲成在线观看</a>| <a href="http://787282.com" target="_blank">亚洲无线观看</a>| <a href="http://nebnb89.com" target="_blank">亚洲黄色有码视频</a>| <a href="http://7redy.com" target="_blank">欧美在线观看一二区</a>| <a href="http://033232.com" target="_blank">欧美体内she精视频在线观看</a>| <a href="http://6u6uuu666.com" target="_blank">亚洲欧美激情四射在线日 </a>| <a href="http://www52y.com" target="_blank">国产精品日韩精品欧美精品</a>| <a href="http://ww323.com" target="_blank">久久久国产一区二区三区</a>| <a href="http://by33336.com" target="_blank">欧美精品日日鲁夜夜添</a>| <a href="http://737sihu.com" target="_blank">久久精品国产一区二区电影</a>| <a href="http://491342.com" target="_blank">欧美精品一区二区三区四区 </a>| <a href="http://www633998.com" target="_blank">午夜精品久久久久久99热</a>| <a href="http://luqintang.com" target="_blank">亚洲欧美国产高清va在线播</a>| <a href="http://977764.com" target="_blank">亚洲国产成人精品久久久国产成人一区</a>| <a href="http://kakatok.com" target="_blank">亚洲成人在线视频播放</a>| <a href="http://mmmm43.com" target="_blank">国产精品亚洲人在线观看</a>| <a href="http://www-24333.com" target="_blank">欧美激情亚洲一区</a>| <a href="http://kkwwxx.com" target="_blank">国产日韩欧美成人</a>| <a href="http://jiuzuifusheng.com" target="_blank">亚洲精品在线视频</a>| <a href="http://017492.com" target="_blank">亚洲电影免费在线</a>| <a href="http://15013010203.com" target="_blank">午夜一区二区三区不卡视频</a>| <a href="http://778kb.com" target="_blank">日韩午夜激情</a>| <a href="http://www-333410.com" target="_blank">久久全球大尺度高清视频</a>| <a href="http://03qt.com" target="_blank">亚洲欧美第一页</a>| <a href="http://aqdav81.com" target="_blank">欧美区视频在线观看</a>| <a href="http://211186.com" target="_blank">久久亚洲影院</a>| <a href="http://hkbsi.com" target="_blank">一区二区三区三区在线</a>| <a href="http://354eee.com" target="_blank">伊人成年综合电影网</a>| <a href="http://7770790.com" target="_blank">亚洲一区精品电影</a>| <a href="http://11867a.com" target="_blank">一区二区三区不卡视频在线观看 </a>| <a href="http://aberyco.com" target="_blank">欧美日韩成人一区二区</a>| <a href="http://2629929.com" target="_blank">久久久精品欧美丰满</a>| <a href="http://ez4444.com" target="_blank">国产精品久久久久毛片大屁完整版 </a>| <a href="http://kdy444.com" target="_blank">欧美精品国产一区</a>| <a href="http://czsanlin.com" target="_blank">欧美日韩综合</a>| <a href="http://0061366.com" target="_blank">亚洲欧美日韩在线高清直播</a>| <a href="http://www-76577c.com" target="_blank">欧美伊人影院</a>| <a href="http://yunpiwang.com" target="_blank">亚洲一区二区三区久久</a>| <a href="http://goutoujunshi.com" target="_blank">欧美mv日韩mv国产网站app</a>| <a href="http://pear9.com" target="_blank">久久久国产精品亚洲一区</a>| <a href="http://97caoporm.com" target="_blank">久久综合亚洲社区</a>| <a href="http://y1bbs.com" target="_blank">欧美激情无毛</a>| <a href="http://zzztt04.com" target="_blank">亚洲韩国青草视频</a>| <a href="http://080177.com" target="_blank">久久精品国产96久久久香蕉</a>| <a href="http://china391.com" target="_blank">久久精品在线免费观看</a>| <a href="http://cytus2wiki.com" target="_blank">久久久久久久久伊人</a>| <a href="http://223tt.com" target="_blank">久久九九久精品国产免费直播</a>| <a href="http://hy1598.com" target="_blank">欧美日韩视频免费播放</a>| <a href="http://www-00468.com" target="_blank">亚洲精美视频</a>| <a href="http://855821.com" target="_blank">亚洲欧洲日本在线</a>| <a href="http://2220004.com" target="_blank">久久久精品网</a>| <a href="http://fobdoer.com" target="_blank">女同一区二区</a>| <a href="http://njggmy.com" target="_blank">亚洲欧洲日本mm</a>| <a href="http://o3xo.com" target="_blank">欧美激情a∨在线视频播放</a>| <a href="http://www49797.com" target="_blank">欧美激情一区二区三区不卡</a>| <a href="http://xuanxuan88.com" target="_blank">亚洲国产精品成人久久综合一区</a>| <a href="http://0855123.com" target="_blank">久久中文字幕导航</a>| <a href="http://www-8438.com" target="_blank">国产主播在线一区</a>| <a href="http://www19829.com" target="_blank">国产一区二区0</a>| <a href="http://cp50088.com" target="_blank">亚洲国产日本</a>| <a href="http://wslsp.com" target="_blank">国产亚洲免费的视频看</a>| <a href="http://13501680.com" target="_blank">亚洲欧美中文另类</a>| <a href="http://2502255.com" target="_blank">欧美一区视频在线</a>| <a href="http://88848885.com" target="_blank">久久夜色精品国产</a>| <a href="http://sesese98.com" target="_blank">欧美日韩国产影院</a>| <a href="http://essuee.com" target="_blank">亚洲永久免费精品</a>| <a href="http://66669801.com" target="_blank">久久激情五月婷婷</a>| <a href="http://hczztj.com" target="_blank">在线看欧美视频</a>| <a href="http://246767.com" target="_blank">欧美激情第1页</a>| <a href="http://743627.com" target="_blank">中文欧美字幕免费</a>| <a href="http://400206.com" target="_blank">99re亚洲国产精品</a>| <a href="http://pao449.com" target="_blank">国产精品久久国产三级国电话系列 </a>| <a href="http://521mu.com" target="_blank">一区二区三区我不卡</a>| <a href="http://yzstbjt.com" target="_blank">午夜久久电影网</a>| <a href="http://yyds16.com" target="_blank">女主播福利一区</a>| <a href="http://66669801.com" target="_blank">一本综合久久</a>| <a href="http://scqike.com" target="_blank">国产精品亚洲аv天堂网</a>| <a href="http://979695.com" target="_blank">久久精品视频网</a>| <a href="http://chongpiapia.com" target="_blank">亚洲电影在线播放</a>| <a href="http://www11111111.com" target="_blank">亚洲肉体裸体xxxx137</a>| <a href="http://ll992.com" target="_blank">亚洲国产婷婷</a>| <a href="http://1355456.com" target="_blank">国产精品qvod</a>| <a href="http://4534com.com" target="_blank">久久久久久久97</a>| <a href="http://avtb2068.com" target="_blank">99国产精品视频免费观看</a>| <a href="http://hehextv.com" target="_blank">午夜精品福利视频</a>| <a href="http://1390555.com" target="_blank">亚洲高清资源</a>| <a href="http://nc04.com" target="_blank">国产一区二区成人</a>| <a href="http://hzjqkj.com" target="_blank">欧美日韩在线亚洲一区蜜芽</a>| <a href="http://huokemima.com" target="_blank">久久av一区二区三区漫画</a>| <a href="http://49234c.com" target="_blank">亚洲人午夜精品免费</a>| <a href="http://www-273111.com" target="_blank">久久经典综合</a>| <a href="http://6055365.com" target="_blank">亚洲视频 欧洲视频</a>| <a href="http://yp889.com" target="_blank">激情久久久久</a>| <a href="http://bcjianyan.com" target="_blank">欧美丝袜一区二区三区</a>| <a href="http://4986888.com" target="_blank">免费在线成人</a>| <a href="http://sese699.com" target="_blank">国产伦精品一区</a>| <a href="http://278538.com" target="_blank">久久久九九九九</a>| <a href="http://cabenn.com" target="_blank">欧美激情中文字幕乱码免费</a>| <a href="http://baluka-tw.com" target="_blank">国产欧美日韩中文字幕在线</a>| <a href="http://vipaqdx29.com" target="_blank">亚洲国产另类 国产精品国产免费</a>| <a href="http://22241com.com" target="_blank">欧美成人中文</a>| <a href="http://tjpzgs.com" target="_blank">欧美在线观看视频一区二区</a>| <a href="http://cnxwlm.com" target="_blank">正在播放亚洲</a>| <a href="http://55555549.com" target="_blank">亚洲经典视频在线观看</a>| <a href="http://www40255.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>