[{"data":1,"prerenderedAt":3155},["ShallowReactive",2],{"wiki-page-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi":3,"wiki-doc-items-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi":2736,"language-switcher-data-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi":3139,"wiki-i18n-paths-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi":3154},{"id":4,"title":5,"body":6,"canonicalPath":2718,"chapterDepth":318,"chapterOrder":2719,"date":2720,"description":311,"docI18nKey":2721,"docKey":2722,"docRoot":2723,"docTitle":2724,"extension":2725,"i18nKey":2726,"isBlogPost":2727,"isWikiDoc":348,"isWikiIndex":2727,"layout":2728,"legacyPath":2728,"locale":2729,"localeSlug":2730,"meta":2731,"navigation":348,"path":2718,"seo":2732,"sourcePath":2733,"sourceStem":2726,"stem":2734,"wikiDepth":318,"__hash__":2735},"content\u002F_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式.md","Lambda 表達式",{"type":7,"value":8,"toc":2700},"minimark",[9,13,17,35,38,41,44,47,123,130,134,158,165,168,294,297,302,305,848,855,863,867,1154,1158,1164,1168,1171,1437,1441,1447,1451,1458,1650,1654,1660,1664,1667,2147,2151,2157,2161,2164,2472,2476,2482,2499,2502,2597,2600,2634,2637,2663,2666,2696],[10,11,12],"h2",{"id":12},"本節解決什麼問題",[14,15,16],"p",{},"很多地方需要傳入一小段邏輯：排序規則、過濾條件、按鈕回調、定時器回調。舊寫法通常有三種：",[18,19,20,24,27],"ol",{},[21,22,23],"li",{},"寫一個普通函數。",[21,25,26],{},"寫一個函數指針。",[21,28,29,30,34],{},"寫一個函數對象，也就是帶 ",[31,32,33],"code",{},"operator()"," 的類或結構體。",[14,36,37],{},"這些寫法都能工作，但小邏輯會被迫挪到遠處，或者要額外寫一個類型。Lambda 表達式讓你可以在使用現場直接寫一個小函數，而且可以捕獲外部變量。",[10,39,40],{"id":40},"這個特性是什麼",[14,42,43],{},"Lambda 是匿名可調用對象。它看起來像一個函數，但本質上是編譯器生成的一個類對象。",[14,45,46],{},"基本結構是：",[48,49,50,67],"table",{},[51,52,53],"thead",{},[54,55,56,61,64],"tr",{},[57,58,60],"th",{"align":59},"left","部分",[57,62,63],{"align":59},"例子",[57,65,66],{"align":59},"含義",[68,69,70,84,97,110],"tbody",{},[54,71,72,76,81],{},[73,74,75],"td",{"align":59},"捕獲列表",[73,77,78],{"align":59},[31,79,80],{},"[x, &y]",[73,82,83],{"align":59},"從外部作用域拿哪些變量",[54,85,86,89,94],{},[73,87,88],{"align":59},"參數列表",[73,90,91],{"align":59},[31,92,93],{},"(int a, int b)",[73,95,96],{"align":59},"調用 lambda 時傳入什麼",[54,98,99,102,107],{},[73,100,101],{"align":59},"返回值",[73,103,104],{"align":59},[31,105,106],{},"-> int",[73,108,109],{"align":59},"返回類型，通常可以省略",[54,111,112,115,120],{},[73,113,114],{"align":59},"函數體",[73,116,117],{"align":59},[31,118,119],{},"{ return a + b; }",[73,121,122],{"align":59},"真正執行的代碼",[14,124,125,126,129],{},"完整形式可以寫成 ",[31,127,128],{},"[x](int n) -> int { return x + n; }","，常見情況下返回值類型可以省略。",[10,131,133],{"id":132},"c-標準版本","C++ 標準版本",[135,136,137,140,147],"ul",{},[21,138,139],{},"C++11：基礎 Lambda。",[21,141,142,143,146],{},"C++14：泛型 Lambda，也就是參數可以寫 ",[31,144,145],{},"auto","。",[21,148,149,150,153,154,157],{},"C++17：",[31,151,152],{},"constexpr"," Lambda、",[31,155,156],{},"[*this]"," 捕獲。",[14,159,160,161,164],{},"Lambda 是語言特性，不需要額外頭文件。只有配合 STL 算法、",[31,162,163],{},"std::function"," 等庫工具時，才需要包含對應頭文件。",[10,166,167],{"id":167},"捕獲列表速查",[48,169,170,182],{},[51,171,172],{},[54,173,174,177,179],{},[57,175,176],{"align":59},"寫法",[57,178,66],{"align":59},[57,180,181],{"align":59},"適用場景",[68,183,184,197,213,228,240,253,266,279],{},[54,185,186,191,194],{},[73,187,188],{"align":59},[31,189,190],{},"[]",[73,192,193],{"align":59},"不捕獲外部變量",[73,195,196],{"align":59},"只用參數或局部臨時變量",[54,198,199,204,210],{},[73,200,201],{"align":59},[31,202,203],{},"[x]",[73,205,206,207],{"align":59},"按值捕獲 ",[31,208,209],{},"x",[73,211,212],{"align":59},"保存一份副本，適合保存回調",[54,214,215,220,225],{},[73,216,217],{"align":59},[31,218,219],{},"[&x]",[73,221,222,223],{"align":59},"按引用捕獲 ",[31,224,209],{},[73,226,227],{"align":59},"需要修改外部變量，且能保證生命週期",[54,229,230,234,237],{},[73,231,232],{"align":59},[31,233,80],{},[73,235,236],{"align":59},"混合捕獲",[73,238,239],{"align":59},"明確表達哪些拷貝、哪些引用",[54,241,242,247,250],{},[73,243,244],{"align":59},[31,245,246],{},"[=]",[73,248,249],{"align":59},"默認按值捕獲用到的變量",[73,251,252],{"align":59},"小例子方便，工程中不建議濫用",[54,254,255,260,263],{},[73,256,257],{"align":59},[31,258,259],{},"[&]",[73,261,262],{"align":59},"默認按引用捕獲用到的變量",[73,264,265],{"align":59},"異步或保存回調中尤其危險",[54,267,268,273,276],{},[73,269,270],{"align":59},[31,271,272],{},"[this]",[73,274,275],{"align":59},"捕獲當前對象指針",[73,277,278],{"align":59},"對象必須比 lambda 活得久",[54,280,281,285,288],{},[73,282,283],{"align":59},[31,284,156],{},[73,286,287],{"align":59},"捕獲當前對象副本",[73,289,290,291],{"align":59},"C++17 起可用，適合避免懸空 ",[31,292,293],{},"this",[10,295,296],{"id":296},"示例代碼",[298,299,301],"h3",{"id":300},"示例-1舊回調寫法和-lambda-的區別","示例 1：舊回調寫法和 lambda 的區別",[14,303,304],{},"普通函數和函數對象都可以作為算法條件，但 Lambda 更適合寫簡短的局部邏輯。",[306,307,312],"pre",{"className":308,"code":309,"language":310,"meta":311,"style":311},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Calgorithm>\n#include \u003Ciostream>\n#include \u003Cvector>\n\nbool is_even(int n)\n{\n    return n % 2 == 0;\n}\n\nstruct GreaterThan\n{\n    int limit;\n\n    bool operator()(int n) const\n    {\n        return n > limit;\n    }\n};\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    \u002F\u002F vector 是动态数组，元素数量可以在运行时变化。\n    std::vector\u003Cint> numbers = {1, 2, 3, 4, 5, 6};\n\n    int even_count = std::count_if(numbers.begin(), numbers.end(), is_even);\n    std::cout \u003C\u003C \"even count = \" \u003C\u003C even_count \u003C\u003C \"\\n\";\n\n    int greater_count1 = std::count_if(numbers.begin(), numbers.end(), GreaterThan{3});\n    std::cout \u003C\u003C \"> 3 count (functor) = \" \u003C\u003C greater_count1 \u003C\u003C \"\\n\";\n\n    int limit = 3;\n    int greater_count2 = std::count_if(numbers.begin(), numbers.end(),\n                                       [limit](int n) {\n                                           return n > limit;\n                                       });\n    std::cout \u003C\u003C \"> 3 count (lambda) = \" \u003C\u003C greater_count2 \u003C\u003C \"\\n\";\n\n    return 0;\n}\n","cpp","",[31,313,314,327,335,343,350,374,380,405,411,416,425,430,439,444,468,474,487,493,499,504,515,520,527,533,585,590,624,656,661,693,719,724,739,766,785,797,803,829,834,843],{"__ignoreMap":311},[315,316,319,323],"span",{"class":317,"line":318},"line",1,[315,320,322],{"class":321},"szBVR","#include",[315,324,326],{"class":325},"sZZnC"," \u003Calgorithm>\n",[315,328,330,332],{"class":317,"line":329},2,[315,331,322],{"class":321},[315,333,334],{"class":325}," \u003Ciostream>\n",[315,336,338,340],{"class":317,"line":337},3,[315,339,322],{"class":321},[315,341,342],{"class":325}," \u003Cvector>\n",[315,344,346],{"class":317,"line":345},4,[315,347,349],{"emptyLinePlaceholder":348},true,"\n",[315,351,353,356,360,364,367,371],{"class":317,"line":352},5,[315,354,355],{"class":321},"bool",[315,357,359],{"class":358},"sScJk"," is_even",[315,361,363],{"class":362},"sVt8B","(",[315,365,366],{"class":321},"int",[315,368,370],{"class":369},"s4XuR"," n",[315,372,373],{"class":362},")\n",[315,375,377],{"class":317,"line":376},6,[315,378,379],{"class":362},"{\n",[315,381,383,386,389,392,396,399,402],{"class":317,"line":382},7,[315,384,385],{"class":321},"    return",[315,387,388],{"class":362}," n ",[315,390,391],{"class":321},"%",[315,393,395],{"class":394},"sj4cs"," 2",[315,397,398],{"class":321}," ==",[315,400,401],{"class":394}," 0",[315,403,404],{"class":362},";\n",[315,406,408],{"class":317,"line":407},8,[315,409,410],{"class":362},"}\n",[315,412,414],{"class":317,"line":413},9,[315,415,349],{"emptyLinePlaceholder":348},[315,417,419,422],{"class":317,"line":418},10,[315,420,421],{"class":321},"struct",[315,423,424],{"class":358}," GreaterThan\n",[315,426,428],{"class":317,"line":427},11,[315,429,379],{"class":362},[315,431,433,436],{"class":317,"line":432},12,[315,434,435],{"class":321},"    int",[315,437,438],{"class":362}," limit;\n",[315,440,442],{"class":317,"line":441},13,[315,443,349],{"emptyLinePlaceholder":348},[315,445,447,450,453,456,458,460,462,465],{"class":317,"line":446},14,[315,448,449],{"class":321},"    bool",[315,451,452],{"class":321}," operator",[315,454,455],{"class":358},"()",[315,457,363],{"class":362},[315,459,366],{"class":321},[315,461,370],{"class":369},[315,463,464],{"class":362},") ",[315,466,467],{"class":321},"const\n",[315,469,471],{"class":317,"line":470},15,[315,472,473],{"class":362},"    {\n",[315,475,477,480,482,485],{"class":317,"line":476},16,[315,478,479],{"class":321},"        return",[315,481,388],{"class":362},[315,483,484],{"class":321},">",[315,486,438],{"class":362},[315,488,490],{"class":317,"line":489},17,[315,491,492],{"class":362},"    }\n",[315,494,496],{"class":317,"line":495},18,[315,497,498],{"class":362},"};\n",[315,500,502],{"class":317,"line":501},19,[315,503,349],{"emptyLinePlaceholder":348},[315,505,507,509,512],{"class":317,"line":506},20,[315,508,366],{"class":321},[315,510,511],{"class":358}," main",[315,513,514],{"class":362},"()\n",[315,516,518],{"class":317,"line":517},21,[315,519,379],{"class":362},[315,521,523],{"class":317,"line":522},22,[315,524,526],{"class":525},"sJ8bj","    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[315,528,530],{"class":317,"line":529},23,[315,531,532],{"class":525},"    \u002F\u002F vector 是动态数组，元素数量可以在运行时变化。\n",[315,534,536,539,542,545,548,551,554,557,560,563,565,568,570,573,575,578,580,583],{"class":317,"line":535},24,[315,537,538],{"class":358},"    std",[315,540,541],{"class":362},"::vector",[315,543,544],{"class":321},"\u003Cint>",[315,546,547],{"class":362}," numbers ",[315,549,550],{"class":321},"=",[315,552,553],{"class":362}," {",[315,555,556],{"class":394},"1",[315,558,559],{"class":362},", ",[315,561,562],{"class":394},"2",[315,564,559],{"class":362},[315,566,567],{"class":394},"3",[315,569,559],{"class":362},[315,571,572],{"class":394},"4",[315,574,559],{"class":362},[315,576,577],{"class":394},"5",[315,579,559],{"class":362},[315,581,582],{"class":394},"6",[315,584,498],{"class":362},[315,586,588],{"class":317,"line":587},25,[315,589,349],{"emptyLinePlaceholder":348},[315,591,593,595,598,600,603,606,609,612,615,618,621],{"class":317,"line":592},26,[315,594,435],{"class":321},[315,596,597],{"class":362}," even_count ",[315,599,550],{"class":321},[315,601,602],{"class":358}," std",[315,604,605],{"class":362},"::",[315,607,608],{"class":358},"count_if",[315,610,611],{"class":362},"(numbers.",[315,613,614],{"class":358},"begin",[315,616,617],{"class":362},"(), numbers.",[315,619,620],{"class":358},"end",[315,622,623],{"class":362},"(), is_even);\n",[315,625,627,629,632,635,638,641,643,645,648,651,654],{"class":317,"line":626},27,[315,628,538],{"class":358},[315,630,631],{"class":362},"::cout ",[315,633,634],{"class":321},"\u003C\u003C",[315,636,637],{"class":325}," \"even count = \"",[315,639,640],{"class":321}," \u003C\u003C",[315,642,597],{"class":362},[315,644,634],{"class":321},[315,646,647],{"class":325}," \"",[315,649,650],{"class":394},"\\n",[315,652,653],{"class":325},"\"",[315,655,404],{"class":362},[315,657,659],{"class":317,"line":658},28,[315,660,349],{"emptyLinePlaceholder":348},[315,662,664,666,669,671,673,675,677,679,681,683,685,688,690],{"class":317,"line":663},29,[315,665,435],{"class":321},[315,667,668],{"class":362}," greater_count1 ",[315,670,550],{"class":321},[315,672,602],{"class":358},[315,674,605],{"class":362},[315,676,608],{"class":358},[315,678,611],{"class":362},[315,680,614],{"class":358},[315,682,617],{"class":362},[315,684,620],{"class":358},[315,686,687],{"class":362},"(), GreaterThan{",[315,689,567],{"class":394},[315,691,692],{"class":362},"});\n",[315,694,696,698,700,702,705,707,709,711,713,715,717],{"class":317,"line":695},30,[315,697,538],{"class":358},[315,699,631],{"class":362},[315,701,634],{"class":321},[315,703,704],{"class":325}," \"> 3 count (functor) = \"",[315,706,640],{"class":321},[315,708,668],{"class":362},[315,710,634],{"class":321},[315,712,647],{"class":325},[315,714,650],{"class":394},[315,716,653],{"class":325},[315,718,404],{"class":362},[315,720,722],{"class":317,"line":721},31,[315,723,349],{"emptyLinePlaceholder":348},[315,725,727,729,732,734,737],{"class":317,"line":726},32,[315,728,435],{"class":321},[315,730,731],{"class":362}," limit ",[315,733,550],{"class":321},[315,735,736],{"class":394}," 3",[315,738,404],{"class":362},[315,740,742,744,747,749,751,753,755,757,759,761,763],{"class":317,"line":741},33,[315,743,435],{"class":321},[315,745,746],{"class":362}," greater_count2 ",[315,748,550],{"class":321},[315,750,602],{"class":358},[315,752,605],{"class":362},[315,754,608],{"class":358},[315,756,611],{"class":362},[315,758,614],{"class":358},[315,760,617],{"class":362},[315,762,620],{"class":358},[315,764,765],{"class":362},"(),\n",[315,767,769,772,775,778,780,782],{"class":317,"line":768},34,[315,770,771],{"class":362},"                                       [",[315,773,774],{"class":369},"limit",[315,776,777],{"class":362},"](",[315,779,366],{"class":321},[315,781,370],{"class":369},[315,783,784],{"class":362},") {\n",[315,786,788,791,793,795],{"class":317,"line":787},35,[315,789,790],{"class":321},"                                           return",[315,792,388],{"class":362},[315,794,484],{"class":321},[315,796,438],{"class":362},[315,798,800],{"class":317,"line":799},36,[315,801,802],{"class":362},"                                       });\n",[315,804,806,808,810,812,815,817,819,821,823,825,827],{"class":317,"line":805},37,[315,807,538],{"class":358},[315,809,631],{"class":362},[315,811,634],{"class":321},[315,813,814],{"class":325}," \"> 3 count (lambda) = \"",[315,816,640],{"class":321},[315,818,746],{"class":362},[315,820,634],{"class":321},[315,822,647],{"class":325},[315,824,650],{"class":394},[315,826,653],{"class":325},[315,828,404],{"class":362},[315,830,832],{"class":317,"line":831},38,[315,833,349],{"emptyLinePlaceholder":348},[315,835,837,839,841],{"class":317,"line":836},39,[315,838,385],{"class":321},[315,840,401],{"class":394},[315,842,404],{"class":362},[315,844,846],{"class":317,"line":845},40,[315,847,410],{"class":362},[14,849,850,854],{},[851,852,853],"strong",{},"運行結果","：",[306,856,861],{"className":857,"code":859,"language":860,"meta":311},[858],"language-text","even count = 3\n> 3 count (functor) = 3\n> 3 count (lambda) = 3\n","text",[31,862,859],{"__ignoreMap":311},[298,864,866],{"id":865},"示例-2最基本的-lambda-語法參數和返回值","示例 2：最基本的 lambda 語法、參數和返回值",[306,868,870],{"className":308,"code":869,"language":310,"meta":311,"style":311},"#include \u003Ciostream>\n#include \u003Cstring>\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    auto add = [](int a, int b) {\n        return a + b;\n    };\n\n    auto describe_score = [](int score) -> std::string {\n        if (score >= 60)\n        {\n            return \"pass\";\n        }\n        return \"fail\";\n    };\n\n    std::cout \u003C\u003C \"add(3, 5) = \" \u003C\u003C add(3, 5) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"score 80 is \" \u003C\u003C describe_score(80) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"score 40 is \" \u003C\u003C describe_score(40) \u003C\u003C \"\\n\";\n\n    \u002F\u002F 返回 0 表示程序正常结束。\n    return 0;\n}\n",[31,871,872,878,885,889,897,901,905,932,945,950,954,979,995,1000,1010,1015,1024,1028,1032,1068,1101,1133,1137,1142,1150],{"__ignoreMap":311},[315,873,874,876],{"class":317,"line":318},[315,875,322],{"class":321},[315,877,334],{"class":325},[315,879,880,882],{"class":317,"line":329},[315,881,322],{"class":321},[315,883,884],{"class":325}," \u003Cstring>\n",[315,886,887],{"class":317,"line":337},[315,888,349],{"emptyLinePlaceholder":348},[315,890,891,893,895],{"class":317,"line":345},[315,892,366],{"class":321},[315,894,511],{"class":358},[315,896,514],{"class":362},[315,898,899],{"class":317,"line":352},[315,900,379],{"class":362},[315,902,903],{"class":317,"line":376},[315,904,526],{"class":525},[315,906,907,910,913,915,918,920,923,925,927,930],{"class":317,"line":382},[315,908,909],{"class":321},"    auto",[315,911,912],{"class":362}," add ",[315,914,550],{"class":321},[315,916,917],{"class":362}," [](",[315,919,366],{"class":321},[315,921,922],{"class":369}," a",[315,924,559],{"class":362},[315,926,366],{"class":321},[315,928,929],{"class":369}," b",[315,931,784],{"class":362},[315,933,934,936,939,942],{"class":317,"line":407},[315,935,479],{"class":321},[315,937,938],{"class":362}," a ",[315,940,941],{"class":321},"+",[315,943,944],{"class":362}," b;\n",[315,946,947],{"class":317,"line":413},[315,948,949],{"class":362},"    };\n",[315,951,952],{"class":317,"line":418},[315,953,349],{"emptyLinePlaceholder":348},[315,955,956,958,961,963,965,967,970,973,976],{"class":317,"line":427},[315,957,909],{"class":321},[315,959,960],{"class":362}," describe_score ",[315,962,550],{"class":321},[315,964,917],{"class":362},[315,966,366],{"class":321},[315,968,969],{"class":369}," score",[315,971,972],{"class":362},") -> ",[315,974,975],{"class":321},"std::string",[315,977,978],{"class":362}," {\n",[315,980,981,984,987,990,993],{"class":317,"line":432},[315,982,983],{"class":321},"        if",[315,985,986],{"class":362}," (score ",[315,988,989],{"class":321},">=",[315,991,992],{"class":394}," 60",[315,994,373],{"class":362},[315,996,997],{"class":317,"line":441},[315,998,999],{"class":362},"        {\n",[315,1001,1002,1005,1008],{"class":317,"line":446},[315,1003,1004],{"class":321},"            return",[315,1006,1007],{"class":325}," \"pass\"",[315,1009,404],{"class":362},[315,1011,1012],{"class":317,"line":470},[315,1013,1014],{"class":362},"        }\n",[315,1016,1017,1019,1022],{"class":317,"line":476},[315,1018,479],{"class":321},[315,1020,1021],{"class":325}," \"fail\"",[315,1023,404],{"class":362},[315,1025,1026],{"class":317,"line":489},[315,1027,949],{"class":362},[315,1029,1030],{"class":317,"line":495},[315,1031,349],{"emptyLinePlaceholder":348},[315,1033,1034,1036,1038,1040,1043,1045,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066],{"class":317,"line":501},[315,1035,538],{"class":358},[315,1037,631],{"class":362},[315,1039,634],{"class":321},[315,1041,1042],{"class":325}," \"add(3, 5) = \"",[315,1044,640],{"class":321},[315,1046,1047],{"class":358}," add",[315,1049,363],{"class":362},[315,1051,567],{"class":394},[315,1053,559],{"class":362},[315,1055,577],{"class":394},[315,1057,464],{"class":362},[315,1059,634],{"class":321},[315,1061,647],{"class":325},[315,1063,650],{"class":394},[315,1065,653],{"class":325},[315,1067,404],{"class":362},[315,1069,1070,1072,1074,1076,1079,1081,1084,1086,1089,1091,1093,1095,1097,1099],{"class":317,"line":506},[315,1071,538],{"class":358},[315,1073,631],{"class":362},[315,1075,634],{"class":321},[315,1077,1078],{"class":325}," \"score 80 is \"",[315,1080,640],{"class":321},[315,1082,1083],{"class":358}," describe_score",[315,1085,363],{"class":362},[315,1087,1088],{"class":394},"80",[315,1090,464],{"class":362},[315,1092,634],{"class":321},[315,1094,647],{"class":325},[315,1096,650],{"class":394},[315,1098,653],{"class":325},[315,1100,404],{"class":362},[315,1102,1103,1105,1107,1109,1112,1114,1116,1118,1121,1123,1125,1127,1129,1131],{"class":317,"line":517},[315,1104,538],{"class":358},[315,1106,631],{"class":362},[315,1108,634],{"class":321},[315,1110,1111],{"class":325}," \"score 40 is \"",[315,1113,640],{"class":321},[315,1115,1083],{"class":358},[315,1117,363],{"class":362},[315,1119,1120],{"class":394},"40",[315,1122,464],{"class":362},[315,1124,634],{"class":321},[315,1126,647],{"class":325},[315,1128,650],{"class":394},[315,1130,653],{"class":325},[315,1132,404],{"class":362},[315,1134,1135],{"class":317,"line":522},[315,1136,349],{"emptyLinePlaceholder":348},[315,1138,1139],{"class":317,"line":529},[315,1140,1141],{"class":525},"    \u002F\u002F 返回 0 表示程序正常结束。\n",[315,1143,1144,1146,1148],{"class":317,"line":535},[315,1145,385],{"class":321},[315,1147,401],{"class":394},[315,1149,404],{"class":362},[315,1151,1152],{"class":317,"line":587},[315,1153,410],{"class":362},[14,1155,1156,854],{},[851,1157,853],{},[306,1159,1162],{"className":1160,"code":1161,"language":860,"meta":311},[858],"add(3, 5) = 8\nscore 80 is pass\nscore 40 is fail\n",[31,1163,1161],{"__ignoreMap":311},[298,1165,1167],{"id":1166},"示例-3按值捕獲和按引用捕獲","示例 3：按值捕獲和按引用捕獲",[14,1169,1170],{},"按值捕獲會保存定義 lambda 時的副本；按引用捕獲會訪問外部變量本身。",[306,1172,1174],{"className":308,"code":1173,"language":310,"meta":311,"style":311},"#include \u003Ciostream>\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    int score = 10;\n\n    auto add_by_value = [score](int bonus) {\n        return score + bonus;\n    };\n\n    auto add_by_ref = [&score](int bonus) {\n        score += bonus;\n        return score;\n    };\n\n    score = 20;\n\n    std::cout \u003C\u003C \"value capture result = \" \u003C\u003C add_by_value(5) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"ref capture result = \" \u003C\u003C add_by_ref(5) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"score after ref capture = \" \u003C\u003C score \u003C\u003C \"\\n\";\n\n    \u002F\u002F 返回 0 表示程序正常结束。\n    return 0;\n}\n",[31,1175,1176,1182,1186,1194,1198,1202,1216,1220,1244,1255,1259,1263,1287,1297,1304,1308,1312,1324,1328,1360,1392,1417,1421,1425,1433],{"__ignoreMap":311},[315,1177,1178,1180],{"class":317,"line":318},[315,1179,322],{"class":321},[315,1181,334],{"class":325},[315,1183,1184],{"class":317,"line":329},[315,1185,349],{"emptyLinePlaceholder":348},[315,1187,1188,1190,1192],{"class":317,"line":337},[315,1189,366],{"class":321},[315,1191,511],{"class":358},[315,1193,514],{"class":362},[315,1195,1196],{"class":317,"line":345},[315,1197,379],{"class":362},[315,1199,1200],{"class":317,"line":352},[315,1201,526],{"class":525},[315,1203,1204,1206,1209,1211,1214],{"class":317,"line":376},[315,1205,435],{"class":321},[315,1207,1208],{"class":362}," score ",[315,1210,550],{"class":321},[315,1212,1213],{"class":394}," 10",[315,1215,404],{"class":362},[315,1217,1218],{"class":317,"line":382},[315,1219,349],{"emptyLinePlaceholder":348},[315,1221,1222,1224,1227,1229,1232,1235,1237,1239,1242],{"class":317,"line":407},[315,1223,909],{"class":321},[315,1225,1226],{"class":362}," add_by_value ",[315,1228,550],{"class":321},[315,1230,1231],{"class":362}," [",[315,1233,1234],{"class":369},"score",[315,1236,777],{"class":362},[315,1238,366],{"class":321},[315,1240,1241],{"class":369}," bonus",[315,1243,784],{"class":362},[315,1245,1246,1248,1250,1252],{"class":317,"line":413},[315,1247,479],{"class":321},[315,1249,1208],{"class":362},[315,1251,941],{"class":321},[315,1253,1254],{"class":362}," bonus;\n",[315,1256,1257],{"class":317,"line":418},[315,1258,949],{"class":362},[315,1260,1261],{"class":317,"line":427},[315,1262,349],{"emptyLinePlaceholder":348},[315,1264,1265,1267,1270,1272,1274,1277,1279,1281,1283,1285],{"class":317,"line":432},[315,1266,909],{"class":321},[315,1268,1269],{"class":362}," add_by_ref ",[315,1271,550],{"class":321},[315,1273,1231],{"class":362},[315,1275,1276],{"class":321},"&",[315,1278,1234],{"class":369},[315,1280,777],{"class":362},[315,1282,366],{"class":321},[315,1284,1241],{"class":369},[315,1286,784],{"class":362},[315,1288,1289,1292,1295],{"class":317,"line":441},[315,1290,1291],{"class":362},"        score ",[315,1293,1294],{"class":321},"+=",[315,1296,1254],{"class":362},[315,1298,1299,1301],{"class":317,"line":446},[315,1300,479],{"class":321},[315,1302,1303],{"class":362}," score;\n",[315,1305,1306],{"class":317,"line":470},[315,1307,949],{"class":362},[315,1309,1310],{"class":317,"line":476},[315,1311,349],{"emptyLinePlaceholder":348},[315,1313,1314,1317,1319,1322],{"class":317,"line":489},[315,1315,1316],{"class":362},"    score ",[315,1318,550],{"class":321},[315,1320,1321],{"class":394}," 20",[315,1323,404],{"class":362},[315,1325,1326],{"class":317,"line":495},[315,1327,349],{"emptyLinePlaceholder":348},[315,1329,1330,1332,1334,1336,1339,1341,1344,1346,1348,1350,1352,1354,1356,1358],{"class":317,"line":501},[315,1331,538],{"class":358},[315,1333,631],{"class":362},[315,1335,634],{"class":321},[315,1337,1338],{"class":325}," \"value capture result = \"",[315,1340,640],{"class":321},[315,1342,1343],{"class":358}," add_by_value",[315,1345,363],{"class":362},[315,1347,577],{"class":394},[315,1349,464],{"class":362},[315,1351,634],{"class":321},[315,1353,647],{"class":325},[315,1355,650],{"class":394},[315,1357,653],{"class":325},[315,1359,404],{"class":362},[315,1361,1362,1364,1366,1368,1371,1373,1376,1378,1380,1382,1384,1386,1388,1390],{"class":317,"line":506},[315,1363,538],{"class":358},[315,1365,631],{"class":362},[315,1367,634],{"class":321},[315,1369,1370],{"class":325}," \"ref capture result = \"",[315,1372,640],{"class":321},[315,1374,1375],{"class":358}," add_by_ref",[315,1377,363],{"class":362},[315,1379,577],{"class":394},[315,1381,464],{"class":362},[315,1383,634],{"class":321},[315,1385,647],{"class":325},[315,1387,650],{"class":394},[315,1389,653],{"class":325},[315,1391,404],{"class":362},[315,1393,1394,1396,1398,1400,1403,1405,1407,1409,1411,1413,1415],{"class":317,"line":517},[315,1395,538],{"class":358},[315,1397,631],{"class":362},[315,1399,634],{"class":321},[315,1401,1402],{"class":325}," \"score after ref capture = \"",[315,1404,640],{"class":321},[315,1406,1208],{"class":362},[315,1408,634],{"class":321},[315,1410,647],{"class":325},[315,1412,650],{"class":394},[315,1414,653],{"class":325},[315,1416,404],{"class":362},[315,1418,1419],{"class":317,"line":522},[315,1420,349],{"emptyLinePlaceholder":348},[315,1422,1423],{"class":317,"line":529},[315,1424,1141],{"class":525},[315,1426,1427,1429,1431],{"class":317,"line":535},[315,1428,385],{"class":321},[315,1430,401],{"class":394},[315,1432,404],{"class":362},[315,1434,1435],{"class":317,"line":587},[315,1436,410],{"class":362},[14,1438,1439,854],{},[851,1440,853],{},[306,1442,1445],{"className":1443,"code":1444,"language":860,"meta":311},[858],"value capture result = 15\nref capture result = 25\nscore after ref capture = 25\n",[31,1446,1444],{"__ignoreMap":311},[298,1448,1450],{"id":1449},"示例-4mutable-允許修改按值捕獲的副本","示例 4：mutable 允許修改按值捕獲的副本",[14,1452,1453,1454,1457],{},"按值捕獲的變量默認在 lambda 內是隻讀的。加上 ",[31,1455,1456],{},"mutable"," 後，可以修改 lambda 自己保存的副本，但不會修改外部變量。",[306,1459,1461],{"className":308,"code":1460,"language":310,"meta":311,"style":311},"#include \u003Ciostream>\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    int start = 0;\n\n    auto counter = [start]() mutable {\n        ++start;\n        return start;\n    };\n\n    std::cout \u003C\u003C \"counter() = \" \u003C\u003C counter() \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"counter() = \" \u003C\u003C counter() \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"outside start = \" \u003C\u003C start \u003C\u003C \"\\n\";\n\n    \u002F\u002F 返回 0 表示程序正常结束。\n    return 0;\n}\n",[31,1462,1463,1469,1473,1481,1485,1489,1502,1506,1527,1535,1542,1546,1550,1579,1605,1630,1634,1638,1646],{"__ignoreMap":311},[315,1464,1465,1467],{"class":317,"line":318},[315,1466,322],{"class":321},[315,1468,334],{"class":325},[315,1470,1471],{"class":317,"line":329},[315,1472,349],{"emptyLinePlaceholder":348},[315,1474,1475,1477,1479],{"class":317,"line":337},[315,1476,366],{"class":321},[315,1478,511],{"class":358},[315,1480,514],{"class":362},[315,1482,1483],{"class":317,"line":345},[315,1484,379],{"class":362},[315,1486,1487],{"class":317,"line":352},[315,1488,526],{"class":525},[315,1490,1491,1493,1496,1498,1500],{"class":317,"line":376},[315,1492,435],{"class":321},[315,1494,1495],{"class":362}," start ",[315,1497,550],{"class":321},[315,1499,401],{"class":394},[315,1501,404],{"class":362},[315,1503,1504],{"class":317,"line":382},[315,1505,349],{"emptyLinePlaceholder":348},[315,1507,1508,1510,1513,1515,1517,1520,1523,1525],{"class":317,"line":407},[315,1509,909],{"class":321},[315,1511,1512],{"class":362}," counter ",[315,1514,550],{"class":321},[315,1516,1231],{"class":362},[315,1518,1519],{"class":369},"start",[315,1521,1522],{"class":362},"]() ",[315,1524,1456],{"class":321},[315,1526,978],{"class":362},[315,1528,1529,1532],{"class":317,"line":413},[315,1530,1531],{"class":321},"        ++",[315,1533,1534],{"class":362},"start;\n",[315,1536,1537,1539],{"class":317,"line":418},[315,1538,479],{"class":321},[315,1540,1541],{"class":362}," start;\n",[315,1543,1544],{"class":317,"line":427},[315,1545,949],{"class":362},[315,1547,1548],{"class":317,"line":432},[315,1549,349],{"emptyLinePlaceholder":348},[315,1551,1552,1554,1556,1558,1561,1563,1566,1569,1571,1573,1575,1577],{"class":317,"line":441},[315,1553,538],{"class":358},[315,1555,631],{"class":362},[315,1557,634],{"class":321},[315,1559,1560],{"class":325}," \"counter() = \"",[315,1562,640],{"class":321},[315,1564,1565],{"class":358}," counter",[315,1567,1568],{"class":362},"() ",[315,1570,634],{"class":321},[315,1572,647],{"class":325},[315,1574,650],{"class":394},[315,1576,653],{"class":325},[315,1578,404],{"class":362},[315,1580,1581,1583,1585,1587,1589,1591,1593,1595,1597,1599,1601,1603],{"class":317,"line":446},[315,1582,538],{"class":358},[315,1584,631],{"class":362},[315,1586,634],{"class":321},[315,1588,1560],{"class":325},[315,1590,640],{"class":321},[315,1592,1565],{"class":358},[315,1594,1568],{"class":362},[315,1596,634],{"class":321},[315,1598,647],{"class":325},[315,1600,650],{"class":394},[315,1602,653],{"class":325},[315,1604,404],{"class":362},[315,1606,1607,1609,1611,1613,1616,1618,1620,1622,1624,1626,1628],{"class":317,"line":470},[315,1608,538],{"class":358},[315,1610,631],{"class":362},[315,1612,634],{"class":321},[315,1614,1615],{"class":325}," \"outside start = \"",[315,1617,640],{"class":321},[315,1619,1495],{"class":362},[315,1621,634],{"class":321},[315,1623,647],{"class":325},[315,1625,650],{"class":394},[315,1627,653],{"class":325},[315,1629,404],{"class":362},[315,1631,1632],{"class":317,"line":476},[315,1633,349],{"emptyLinePlaceholder":348},[315,1635,1636],{"class":317,"line":489},[315,1637,1141],{"class":525},[315,1639,1640,1642,1644],{"class":317,"line":495},[315,1641,385],{"class":321},[315,1643,401],{"class":394},[315,1645,404],{"class":362},[315,1647,1648],{"class":317,"line":501},[315,1649,410],{"class":362},[14,1651,1652,854],{},[851,1653,853],{},[306,1655,1658],{"className":1656,"code":1657,"language":860,"meta":311},[858],"counter() = 1\ncounter() = 2\noutside start = 0\n",[31,1659,1657],{"__ignoreMap":311},[298,1661,1663],{"id":1662},"示例-5lambda-配合-stl-算法","示例 5：lambda 配合 STL 算法",[14,1665,1666],{},"Lambda 和 STL 算法配合時最常見：排序、查找、計數、轉換都可以把局部邏輯直接寫在調用處。",[306,1668,1670],{"className":308,"code":1669,"language":310,"meta":311,"style":311},"#include \u003Calgorithm>\n#include \u003Ciostream>\n#include \u003Cstring>\n#include \u003Cvector>\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    \u002F\u002F vector 是动态数组，元素数量可以在运行时变化。\n    std::vector\u003Cstd::string> names = {\"Bob\", \"Alice\", \"Charlie\", \"David\"};\n\n    std::sort(names.begin(), names.end(),\n              [](const std::string& a, const std::string& b) {\n                  if (a.size() == b.size())\n                  {\n                      return a \u003C b;\n                  }\n                  return a.size() \u003C b.size();\n              });\n\n    std::cout \u003C\u003C \"sort by length: \";\n    for (const auto& name : names)\n    {\n        std::cout \u003C\u003C name \u003C\u003C \" \";\n    }\n    std::cout \u003C\u003C \"\\n\";\n\n    int min_length = 6;\n    auto it = std::find_if(names.begin(), names.end(),\n                           [min_length](const std::string& name) {\n                               return name.size() >= static_cast\u003Cstd::size_t>(min_length);\n                           });\n\n    if (it != names.end())\n    {\n        std::cout \u003C\u003C \"first long name = \" \u003C\u003C *it \u003C\u003C \"\\n\";\n    }\n\n    return 0;\n}\n",[31,1671,1672,1678,1684,1690,1696,1700,1708,1712,1716,1720,1764,1768,1789,1824,1848,1853,1864,1869,1890,1895,1899,1912,1928,1932,1951,1955,1971,1975,1989,2015,2040,2067,2072,2076,2094,2098,2127,2131,2135,2143],{"__ignoreMap":311},[315,1673,1674,1676],{"class":317,"line":318},[315,1675,322],{"class":321},[315,1677,326],{"class":325},[315,1679,1680,1682],{"class":317,"line":329},[315,1681,322],{"class":321},[315,1683,334],{"class":325},[315,1685,1686,1688],{"class":317,"line":337},[315,1687,322],{"class":321},[315,1689,884],{"class":325},[315,1691,1692,1694],{"class":317,"line":345},[315,1693,322],{"class":321},[315,1695,342],{"class":325},[315,1697,1698],{"class":317,"line":352},[315,1699,349],{"emptyLinePlaceholder":348},[315,1701,1702,1704,1706],{"class":317,"line":376},[315,1703,366],{"class":321},[315,1705,511],{"class":358},[315,1707,514],{"class":362},[315,1709,1710],{"class":317,"line":382},[315,1711,379],{"class":362},[315,1713,1714],{"class":317,"line":407},[315,1715,526],{"class":525},[315,1717,1718],{"class":317,"line":413},[315,1719,532],{"class":525},[315,1721,1722,1724,1726,1729,1732,1735,1737,1740,1742,1744,1747,1749,1752,1754,1757,1759,1762],{"class":317,"line":418},[315,1723,538],{"class":358},[315,1725,541],{"class":362},[315,1727,1728],{"class":321},"\u003C",[315,1730,1731],{"class":358},"std",[315,1733,1734],{"class":362},"::string",[315,1736,484],{"class":321},[315,1738,1739],{"class":362}," names ",[315,1741,550],{"class":321},[315,1743,553],{"class":362},[315,1745,1746],{"class":325},"\"Bob\"",[315,1748,559],{"class":362},[315,1750,1751],{"class":325},"\"Alice\"",[315,1753,559],{"class":362},[315,1755,1756],{"class":325},"\"Charlie\"",[315,1758,559],{"class":362},[315,1760,1761],{"class":325},"\"David\"",[315,1763,498],{"class":362},[315,1765,1766],{"class":317,"line":427},[315,1767,349],{"emptyLinePlaceholder":348},[315,1769,1770,1772,1774,1777,1780,1782,1785,1787],{"class":317,"line":432},[315,1771,538],{"class":358},[315,1773,605],{"class":362},[315,1775,1776],{"class":358},"sort",[315,1778,1779],{"class":362},"(names.",[315,1781,614],{"class":358},[315,1783,1784],{"class":362},"(), names.",[315,1786,620],{"class":358},[315,1788,765],{"class":362},[315,1790,1791,1794,1797,1799,1801,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822],{"class":317,"line":441},[315,1792,1793],{"class":362},"              [](",[315,1795,1796],{"class":321},"const",[315,1798,602],{"class":358},[315,1800,605],{"class":362},[315,1802,1803],{"class":358},"string",[315,1805,1276],{"class":321},[315,1807,922],{"class":369},[315,1809,559],{"class":362},[315,1811,1796],{"class":321},[315,1813,602],{"class":358},[315,1815,605],{"class":362},[315,1817,1803],{"class":358},[315,1819,1276],{"class":321},[315,1821,929],{"class":369},[315,1823,784],{"class":362},[315,1825,1826,1829,1832,1835,1837,1840,1843,1845],{"class":317,"line":446},[315,1827,1828],{"class":321},"                  if",[315,1830,1831],{"class":362}," (a.",[315,1833,1834],{"class":358},"size",[315,1836,1568],{"class":362},[315,1838,1839],{"class":321},"==",[315,1841,1842],{"class":362}," b.",[315,1844,1834],{"class":358},[315,1846,1847],{"class":362},"())\n",[315,1849,1850],{"class":317,"line":470},[315,1851,1852],{"class":362},"                  {\n",[315,1854,1855,1858,1860,1862],{"class":317,"line":476},[315,1856,1857],{"class":321},"                      return",[315,1859,938],{"class":362},[315,1861,1728],{"class":321},[315,1863,944],{"class":362},[315,1865,1866],{"class":317,"line":489},[315,1867,1868],{"class":362},"                  }\n",[315,1870,1871,1874,1877,1879,1881,1883,1885,1887],{"class":317,"line":495},[315,1872,1873],{"class":321},"                  return",[315,1875,1876],{"class":362}," a.",[315,1878,1834],{"class":358},[315,1880,1568],{"class":362},[315,1882,1728],{"class":321},[315,1884,1842],{"class":362},[315,1886,1834],{"class":358},[315,1888,1889],{"class":362},"();\n",[315,1891,1892],{"class":317,"line":501},[315,1893,1894],{"class":362},"              });\n",[315,1896,1897],{"class":317,"line":506},[315,1898,349],{"emptyLinePlaceholder":348},[315,1900,1901,1903,1905,1907,1910],{"class":317,"line":517},[315,1902,538],{"class":358},[315,1904,631],{"class":362},[315,1906,634],{"class":321},[315,1908,1909],{"class":325}," \"sort by length: \"",[315,1911,404],{"class":362},[315,1913,1914,1917,1920,1922,1925],{"class":317,"line":522},[315,1915,1916],{"class":321},"    for",[315,1918,1919],{"class":362}," (",[315,1921,1796],{"class":321},[315,1923,1924],{"class":321}," auto&",[315,1926,1927],{"class":362}," name : names)\n",[315,1929,1930],{"class":317,"line":529},[315,1931,473],{"class":362},[315,1933,1934,1937,1939,1941,1944,1946,1949],{"class":317,"line":535},[315,1935,1936],{"class":358},"        std",[315,1938,631],{"class":362},[315,1940,634],{"class":321},[315,1942,1943],{"class":362}," name ",[315,1945,634],{"class":321},[315,1947,1948],{"class":325}," \" \"",[315,1950,404],{"class":362},[315,1952,1953],{"class":317,"line":587},[315,1954,492],{"class":362},[315,1956,1957,1959,1961,1963,1965,1967,1969],{"class":317,"line":592},[315,1958,538],{"class":358},[315,1960,631],{"class":362},[315,1962,634],{"class":321},[315,1964,647],{"class":325},[315,1966,650],{"class":394},[315,1968,653],{"class":325},[315,1970,404],{"class":362},[315,1972,1973],{"class":317,"line":626},[315,1974,349],{"emptyLinePlaceholder":348},[315,1976,1977,1979,1982,1984,1987],{"class":317,"line":658},[315,1978,435],{"class":321},[315,1980,1981],{"class":362}," min_length ",[315,1983,550],{"class":321},[315,1985,1986],{"class":394}," 6",[315,1988,404],{"class":362},[315,1990,1991,1993,1996,1998,2000,2002,2005,2007,2009,2011,2013],{"class":317,"line":663},[315,1992,909],{"class":321},[315,1994,1995],{"class":362}," it ",[315,1997,550],{"class":321},[315,1999,602],{"class":358},[315,2001,605],{"class":362},[315,2003,2004],{"class":358},"find_if",[315,2006,1779],{"class":362},[315,2008,614],{"class":358},[315,2010,1784],{"class":362},[315,2012,620],{"class":358},[315,2014,765],{"class":362},[315,2016,2017,2020,2023,2025,2027,2029,2031,2033,2035,2038],{"class":317,"line":695},[315,2018,2019],{"class":362},"                           [",[315,2021,2022],{"class":369},"min_length",[315,2024,777],{"class":362},[315,2026,1796],{"class":321},[315,2028,602],{"class":358},[315,2030,605],{"class":362},[315,2032,1803],{"class":358},[315,2034,1276],{"class":321},[315,2036,2037],{"class":369}," name",[315,2039,784],{"class":362},[315,2041,2042,2045,2048,2050,2052,2054,2057,2059,2061,2064],{"class":317,"line":721},[315,2043,2044],{"class":321},"                               return",[315,2046,2047],{"class":362}," name.",[315,2049,1834],{"class":358},[315,2051,1568],{"class":362},[315,2053,989],{"class":321},[315,2055,2056],{"class":321}," static_cast\u003C",[315,2058,1731],{"class":358},[315,2060,605],{"class":362},[315,2062,2063],{"class":321},"size_t>",[315,2065,2066],{"class":362},"(min_length);\n",[315,2068,2069],{"class":317,"line":726},[315,2070,2071],{"class":362},"                           });\n",[315,2073,2074],{"class":317,"line":741},[315,2075,349],{"emptyLinePlaceholder":348},[315,2077,2078,2081,2084,2087,2090,2092],{"class":317,"line":768},[315,2079,2080],{"class":321},"    if",[315,2082,2083],{"class":362}," (it ",[315,2085,2086],{"class":321},"!=",[315,2088,2089],{"class":362}," names.",[315,2091,620],{"class":358},[315,2093,1847],{"class":362},[315,2095,2096],{"class":317,"line":787},[315,2097,473],{"class":362},[315,2099,2100,2102,2104,2106,2109,2111,2114,2117,2119,2121,2123,2125],{"class":317,"line":799},[315,2101,1936],{"class":358},[315,2103,631],{"class":362},[315,2105,634],{"class":321},[315,2107,2108],{"class":325}," \"first long name = \"",[315,2110,640],{"class":321},[315,2112,2113],{"class":321}," *",[315,2115,2116],{"class":362},"it ",[315,2118,634],{"class":321},[315,2120,647],{"class":325},[315,2122,650],{"class":394},[315,2124,653],{"class":325},[315,2126,404],{"class":362},[315,2128,2129],{"class":317,"line":805},[315,2130,492],{"class":362},[315,2132,2133],{"class":317,"line":831},[315,2134,349],{"emptyLinePlaceholder":348},[315,2136,2137,2139,2141],{"class":317,"line":836},[315,2138,385],{"class":321},[315,2140,401],{"class":394},[315,2142,404],{"class":362},[315,2144,2145],{"class":317,"line":845},[315,2146,410],{"class":362},[14,2148,2149,854],{},[851,2150,853],{},[306,2152,2155],{"className":2153,"code":2154,"language":860,"meta":311},[858],"sort by length: Bob Alice David Charlie\nfirst long name = Charlie\n",[31,2156,2154],{"__ignoreMap":311},[298,2158,2160],{"id":2159},"示例-6保存回調時要注意捕獲生命週期","示例 6：保存回調時要注意捕獲生命週期",[14,2162,2163],{},"如果 lambda 只是立刻調用，引用捕獲通常看起來沒問題；如果保存到容器、線程、定時器或異步回調裡，lambda 可能晚於局部變量執行。保存回調時優先按值捕獲需要的數據。",[306,2165,2167],{"className":308,"code":2166,"language":310,"meta":311,"style":311},"#include \u003Cfunctional>\n#include \u003Ciostream>\n#include \u003Cstring>\n#include \u003Cvector>\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    \u002F\u002F std::function 可以保存普通函数、lambda 或函数对象。\n    \u002F\u002F vector 是动态数组，元素数量可以在运行时变化。\n    std::vector\u003Cstd::function\u003Cvoid()>> callbacks;\n\n    {\n        std::string name = \"Alice\";\n        int score = 95;\n\n        auto print_now = [&name, &score]() {\n            std::cout \u003C\u003C \"now: \" \u003C\u003C name \u003C\u003C \" \" \u003C\u003C score \u003C\u003C \"\\n\";\n        };\n        print_now();\n\n        callbacks.push_back([name, score]() {\n            std::cout \u003C\u003C \"saved: \" \u003C\u003C name \u003C\u003C \" \" \u003C\u003C score \u003C\u003C \"\\n\";\n        });\n    }\n\n    for (const auto& callback : callbacks)\n    {\n        callback();\n    }\n\n    return 0;\n}\n",[31,2168,2169,2176,2182,2188,2194,2198,2206,2210,2214,2219,2223,2247,2251,2255,2269,2283,2287,2313,2347,2352,2359,2363,2382,2415,2420,2424,2428,2441,2445,2452,2456,2460,2468],{"__ignoreMap":311},[315,2170,2171,2173],{"class":317,"line":318},[315,2172,322],{"class":321},[315,2174,2175],{"class":325}," \u003Cfunctional>\n",[315,2177,2178,2180],{"class":317,"line":329},[315,2179,322],{"class":321},[315,2181,334],{"class":325},[315,2183,2184,2186],{"class":317,"line":337},[315,2185,322],{"class":321},[315,2187,884],{"class":325},[315,2189,2190,2192],{"class":317,"line":345},[315,2191,322],{"class":321},[315,2193,342],{"class":325},[315,2195,2196],{"class":317,"line":352},[315,2197,349],{"emptyLinePlaceholder":348},[315,2199,2200,2202,2204],{"class":317,"line":376},[315,2201,366],{"class":321},[315,2203,511],{"class":358},[315,2205,514],{"class":362},[315,2207,2208],{"class":317,"line":382},[315,2209,379],{"class":362},[315,2211,2212],{"class":317,"line":407},[315,2213,526],{"class":525},[315,2215,2216],{"class":317,"line":413},[315,2217,2218],{"class":525},"    \u002F\u002F std::function 可以保存普通函数、lambda 或函数对象。\n",[315,2220,2221],{"class":317,"line":418},[315,2222,532],{"class":525},[315,2224,2225,2227,2229,2231,2233,2236,2239,2241,2244],{"class":317,"line":427},[315,2226,538],{"class":358},[315,2228,541],{"class":362},[315,2230,1728],{"class":321},[315,2232,1731],{"class":358},[315,2234,2235],{"class":362},"::function",[315,2237,2238],{"class":321},"\u003Cvoid",[315,2240,455],{"class":362},[315,2242,2243],{"class":321},">>",[315,2245,2246],{"class":362}," callbacks;\n",[315,2248,2249],{"class":317,"line":432},[315,2250,349],{"emptyLinePlaceholder":348},[315,2252,2253],{"class":317,"line":441},[315,2254,473],{"class":362},[315,2256,2257,2259,2262,2264,2267],{"class":317,"line":446},[315,2258,1936],{"class":358},[315,2260,2261],{"class":362},"::string name ",[315,2263,550],{"class":321},[315,2265,2266],{"class":325}," \"Alice\"",[315,2268,404],{"class":362},[315,2270,2271,2274,2276,2278,2281],{"class":317,"line":470},[315,2272,2273],{"class":321},"        int",[315,2275,1208],{"class":362},[315,2277,550],{"class":321},[315,2279,2280],{"class":394}," 95",[315,2282,404],{"class":362},[315,2284,2285],{"class":317,"line":476},[315,2286,349],{"emptyLinePlaceholder":348},[315,2288,2289,2292,2295,2297,2299,2301,2304,2306,2308,2310],{"class":317,"line":489},[315,2290,2291],{"class":321},"        auto",[315,2293,2294],{"class":362}," print_now ",[315,2296,550],{"class":321},[315,2298,1231],{"class":362},[315,2300,1276],{"class":321},[315,2302,2303],{"class":369},"name",[315,2305,559],{"class":362},[315,2307,1276],{"class":321},[315,2309,1234],{"class":369},[315,2311,2312],{"class":362},"]() {\n",[315,2314,2315,2318,2320,2322,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345],{"class":317,"line":495},[315,2316,2317],{"class":358},"            std",[315,2319,631],{"class":362},[315,2321,634],{"class":321},[315,2323,2324],{"class":325}," \"now: \"",[315,2326,640],{"class":321},[315,2328,1943],{"class":362},[315,2330,634],{"class":321},[315,2332,1948],{"class":325},[315,2334,640],{"class":321},[315,2336,1208],{"class":362},[315,2338,634],{"class":321},[315,2340,647],{"class":325},[315,2342,650],{"class":394},[315,2344,653],{"class":325},[315,2346,404],{"class":362},[315,2348,2349],{"class":317,"line":501},[315,2350,2351],{"class":362},"        };\n",[315,2353,2354,2357],{"class":317,"line":506},[315,2355,2356],{"class":358},"        print_now",[315,2358,1889],{"class":362},[315,2360,2361],{"class":317,"line":517},[315,2362,349],{"emptyLinePlaceholder":348},[315,2364,2365,2368,2371,2374,2376,2378,2380],{"class":317,"line":522},[315,2366,2367],{"class":362},"        callbacks.",[315,2369,2370],{"class":358},"push_back",[315,2372,2373],{"class":362},"([",[315,2375,2303],{"class":369},[315,2377,559],{"class":362},[315,2379,1234],{"class":369},[315,2381,2312],{"class":362},[315,2383,2384,2386,2388,2390,2393,2395,2397,2399,2401,2403,2405,2407,2409,2411,2413],{"class":317,"line":529},[315,2385,2317],{"class":358},[315,2387,631],{"class":362},[315,2389,634],{"class":321},[315,2391,2392],{"class":325}," \"saved: \"",[315,2394,640],{"class":321},[315,2396,1943],{"class":362},[315,2398,634],{"class":321},[315,2400,1948],{"class":325},[315,2402,640],{"class":321},[315,2404,1208],{"class":362},[315,2406,634],{"class":321},[315,2408,647],{"class":325},[315,2410,650],{"class":394},[315,2412,653],{"class":325},[315,2414,404],{"class":362},[315,2416,2417],{"class":317,"line":535},[315,2418,2419],{"class":362},"        });\n",[315,2421,2422],{"class":317,"line":587},[315,2423,492],{"class":362},[315,2425,2426],{"class":317,"line":592},[315,2427,349],{"emptyLinePlaceholder":348},[315,2429,2430,2432,2434,2436,2438],{"class":317,"line":626},[315,2431,1916],{"class":321},[315,2433,1919],{"class":362},[315,2435,1796],{"class":321},[315,2437,1924],{"class":321},[315,2439,2440],{"class":362}," callback : callbacks)\n",[315,2442,2443],{"class":317,"line":658},[315,2444,473],{"class":362},[315,2446,2447,2450],{"class":317,"line":663},[315,2448,2449],{"class":358},"        callback",[315,2451,1889],{"class":362},[315,2453,2454],{"class":317,"line":695},[315,2455,492],{"class":362},[315,2457,2458],{"class":317,"line":721},[315,2459,349],{"emptyLinePlaceholder":348},[315,2461,2462,2464,2466],{"class":317,"line":726},[315,2463,385],{"class":321},[315,2465,401],{"class":394},[315,2467,404],{"class":362},[315,2469,2470],{"class":317,"line":741},[315,2471,410],{"class":362},[14,2473,2474,854],{},[851,2475,853],{},[306,2477,2480],{"className":2478,"code":2479,"language":860,"meta":311},[858],"now: Alice 95\nsaved: Alice 95\n",[31,2481,2479],{"__ignoreMap":311},[14,2483,2484,2485,2488,2489,2492,2493,2495,2496,2498],{},"這裡 ",[31,2486,2487],{},"print_now"," 立刻調用，所以引用捕獲沒問題。保存到 ",[31,2490,2491],{},"callbacks"," 的 lambda 用按值捕獲，因為離開內部作用域後，",[31,2494,2303],{}," 和 ",[31,2497,1234],{}," 已經銷燬。",[10,2500,2501],{"id":2501},"關鍵語法解釋",[48,2503,2504,2517],{},[51,2505,2506],{},[54,2507,2508,2511,2514],{},[57,2509,2510],{"align":59},"示例",[57,2512,2513],{"align":59},"重點",[57,2515,2516],{"align":59},"說明",[68,2518,2519,2530,2541,2556,2568,2586],{},[54,2520,2521,2524,2527],{},[73,2522,2523],{"align":59},"示例 1",[73,2525,2526],{"align":59},"舊回調寫法對比",[73,2528,2529],{"align":59},"普通函數、函數對象都能做回調，但 lambda 更適合局部短邏輯",[54,2531,2532,2535,2538],{},[73,2533,2534],{"align":59},"示例 2",[73,2536,2537],{"align":59},"參數和返回值",[73,2539,2540],{"align":59},"返回類型通常可推導，分支返回不同類型時要顯式寫清楚",[54,2542,2543,2546,2548],{},[73,2544,2545],{"align":59},"示例 3",[73,2547,75],{"align":59},[73,2549,2550,2552,2553,2555],{"align":59},[31,2551,203],{}," 拷貝，",[31,2554,219],{}," 引用",[54,2557,2558,2561,2565],{},[73,2559,2560],{"align":59},"示例 4",[73,2562,2563],{"align":59},[31,2564,1456],{},[73,2566,2567],{"align":59},"修改的是 lambda 內部副本，不影響外部變量",[54,2569,2570,2573,2576],{},[73,2571,2572],{"align":59},"示例 5",[73,2574,2575],{"align":59},"STL 算法",[73,2577,2578,2580,2581,2580,2583,2585],{"align":59},[31,2579,1776],{},"、",[31,2582,2004],{},[31,2584,608],{}," 常和 lambda 配合",[54,2587,2588,2591,2594],{},[73,2589,2590],{"align":59},"示例 6",[73,2592,2593],{"align":59},"生命週期",[73,2595,2596],{"align":59},"保存回調、異步回調、線程回調中不要隨便引用捕獲局部變量",[10,2598,2599],{"id":2599},"常見錯誤",[18,2601,2602,2608,2611,2616,2625],{},[21,2603,2604,2605,2607],{},"保存回調時使用默認引用捕獲 ",[31,2606,259],{},"，導致局部變量銷燬後仍被訪問。",[21,2609,2610],{},"以為按值捕獲會跟著外部變量變化。按值捕獲保存的是定義 lambda 時的副本。",[21,2612,2613,2614,146],{},"想修改按值捕獲的副本，卻忘記加 ",[31,2615,1456],{},[21,2617,2618,2619,2621,2622,2624],{},"把有捕獲的 lambda 當成函數指針使用。有捕獲的 lambda 需要用模板參數、",[31,2620,145],{}," 變量或 ",[31,2623,163],{}," 保存。",[21,2626,2627,2628,2630,2631,2633],{},"異步場景捕獲 ",[31,2629,293],{}," 後，對象先被銷燬。需要保證對象生命週期，或使用智能指針、",[31,2632,156],{}," 等更明確的方式。",[10,2635,2636],{"id":2636},"使用建議",[18,2638,2639,2642,2652,2655,2658],{},[21,2640,2641],{},"小而局部的邏輯優先用 lambda。",[21,2643,2644,2645,2647,2648,2495,2650,146],{},"捕獲列表儘量顯式寫 ",[31,2646,80],{},"，少用默認 ",[31,2649,246],{},[31,2651,259],{},[21,2653,2654],{},"保存回調、線程、定時器、異步操作中優先按值捕獲需要的數據。",[21,2656,2657],{},"只調用一次、不需要保存的回調，可以直接把 lambda 傳給算法或函數模板。",[21,2659,2660,2661,146],{},"需要統一保存不同 lambda 時，再使用下一節的 ",[31,2662,163],{},[10,2664,2665],{"id":2665},"小結",[135,2667,2668,2674,2677,2685,2690,2693],{},[21,2669,2670,2671,146],{},"Lambda 是匿名可調用對象，寫法是 ",[31,2672,2673],{},"[捕获](参数) { 函数体 }",[21,2675,2676],{},"捕獲列表決定 lambda 如何使用外部變量。",[21,2678,2679,2681,2682,2684],{},[31,2680,203],{}," 是按值捕獲，",[31,2683,219],{}," 是按引用捕獲。",[21,2686,2687,2689],{},[31,2688,1456],{}," 允許修改按值捕獲的內部副本。",[21,2691,2692],{},"Lambda 最常用於 STL 算法、回調和異步任務。",[21,2694,2695],{},"生命週期是 Lambda 最容易出錯的地方，尤其是保存回調和異步回調。",[2697,2698,2699],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":311,"searchDepth":329,"depth":329,"links":2701},[2702,2703,2704,2705,2706,2714,2715,2716,2717],{"id":12,"depth":329,"text":12},{"id":40,"depth":329,"text":40},{"id":132,"depth":329,"text":133},{"id":167,"depth":329,"text":167},{"id":296,"depth":329,"text":296,"children":2707},[2708,2709,2710,2711,2712,2713],{"id":300,"depth":337,"text":301},{"id":865,"depth":337,"text":866},{"id":1166,"depth":337,"text":1167},{"id":1449,"depth":337,"text":1450},{"id":1662,"depth":337,"text":1663},{"id":2159,"depth":337,"text":2160},{"id":2501,"depth":329,"text":2501},{"id":2599,"depth":329,"text":2599},{"id":2636,"depth":329,"text":2636},{"id":2665,"depth":329,"text":2665},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","2000-1100","2023-10-05","wiki\u002F2023-10-05-cplusplus-jiao-xue","zh-tw:2023-10-05-cplusplus-jiao-xue","\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式",false,null,"zh-TW","zh-tw",{},{"title":5,"description":311},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","6PPrbXHGV6_inZmK4R0o59t3bwcnp5PtIN8TwXTqxKw",[2737,2743,2748,2753,2758,2763,2768,2773,2778,2783,2788,2793,2798,2803,2808,2813,2818,2823,2828,2833,2838,2843,2848,2853,2858,2863,2868,2873,2878,2883,2888,2893,2898,2903,2908,2913,2918,2923,2927,2932,2937,2942,2947,2952,2956,2961,2966,2971,2972,2976,2981,2986,2991,2996,3001,3006,3011,3016,3021,3026,3031,3036,3041,3046,3051,3056,3061,3066,3071,3076,3081,3086,3091,3096,3101,3106,3111,3116,3121,3126,3131,3136],{"path":2738,"stem":2739,"title":2740,"date":2720,"chapterOrder":2741,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++開發環境搭建與測試","0100",0,{"path":2744,"stem":2745,"title":2746,"date":2720,"chapterOrder":2747,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++基礎初識","0200",{"path":2749,"stem":2750,"title":2751,"date":2720,"chapterOrder":2752,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","數據類型與數據存放","0300",{"path":2754,"stem":2755,"title":2756,"date":2720,"chapterOrder":2757,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","輸入輸出","0400",{"path":2759,"stem":2760,"title":2761,"date":2720,"chapterOrder":2762,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","運算符","0500",{"path":2764,"stem":2765,"title":2766,"date":2720,"chapterOrder":2767,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","程序流程結構","0600",{"path":2769,"stem":2770,"title":2771,"date":2720,"chapterOrder":2772,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","數組","0700",{"path":2774,"stem":2775,"title":2776,"date":2720,"chapterOrder":2777,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","函數與頭文件","0800",{"path":2779,"stem":2780,"title":2781,"date":2720,"chapterOrder":2782,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","指針","0900",{"path":2784,"stem":2785,"title":2786,"date":2720,"chapterOrder":2787,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","結構體與共用體","1000",{"path":2789,"stem":2790,"title":2791,"date":2720,"chapterOrder":2792,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","內存分區與生命週期","1100",{"path":2794,"stem":2795,"title":2796,"date":2720,"chapterOrder":2797,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","引用","1200",{"path":2799,"stem":2800,"title":2801,"date":2720,"chapterOrder":2802,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","函數提高與命名空間","1300",{"path":2804,"stem":2805,"title":2806,"date":2720,"chapterOrder":2807,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","封裝","1400-0100",{"path":2809,"stem":2810,"title":2811,"date":2720,"chapterOrder":2812,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","對象初始化和清理","1400-0200",{"path":2814,"stem":2815,"title":2816,"date":2720,"chapterOrder":2817,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","對象模型與this指針","1400-0300",{"path":2819,"stem":2820,"title":2821,"date":2720,"chapterOrder":2822,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","友元與運算符重載","1400-0400",{"path":2824,"stem":2825,"title":2826,"date":2720,"chapterOrder":2827,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","繼承","1400-0500",{"path":2829,"stem":2830,"title":2831,"date":2720,"chapterOrder":2832,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","多態","1400-0600",{"path":2834,"stem":2835,"title":2836,"date":2720,"chapterOrder":2837,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","類和對象","1400",{"path":2839,"stem":2840,"title":2841,"date":2720,"chapterOrder":2842,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","文件操作","1500",{"path":2844,"stem":2845,"title":2846,"date":2720,"chapterOrder":2847,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","異常處理","1600",{"path":2849,"stem":2850,"title":2851,"date":2720,"chapterOrder":2852,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","模板","1700",{"path":2854,"stem":2855,"title":2856,"date":2720,"chapterOrder":2857,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","STL初識","1800-0100",{"path":2859,"stem":2860,"title":2861,"date":2720,"chapterOrder":2862,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":2864,"stem":2865,"title":2866,"date":2720,"chapterOrder":2867,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string容器","1800-0300",{"path":2869,"stem":2870,"title":2871,"date":2720,"chapterOrder":2872,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector容器","vector 容器","1800-0400",{"path":2874,"stem":2875,"title":2876,"date":2720,"chapterOrder":2877,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-deque-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-deque容器","deque 容器","1800-0500",{"path":2879,"stem":2880,"title":2881,"date":2720,"chapterOrder":2882,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-stack-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-stack容器","stack 容器","1800-0600",{"path":2884,"stem":2885,"title":2886,"date":2720,"chapterOrder":2887,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-queue-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-queue容器","queue 容器","1800-0700",{"path":2889,"stem":2890,"title":2891,"date":2720,"chapterOrder":2892,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-list-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-list容器","list 容器","1800-0800",{"path":2894,"stem":2895,"title":2896,"date":2720,"chapterOrder":2897,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0900-set-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0900-set容器","set \u002F multiset 容器","1800-0900",{"path":2899,"stem":2900,"title":2901,"date":2720,"chapterOrder":2902,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1000-map-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1000-map容器","map \u002F multimap 容器","1800-1000",{"path":2904,"stem":2905,"title":2906,"date":2720,"chapterOrder":2907,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1100-han-shu-dui-xiang-yu-wei-ci","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1100-函数对象与谓词","函數對象與謂詞","1800-1100",{"path":2909,"stem":2910,"title":2911,"date":2720,"chapterOrder":2912,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1200-chang-yong-suan-fa","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1200-常用算法","常用算法","1800-1200",{"path":2914,"stem":2915,"title":2916,"date":2720,"chapterOrder":2917,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","STL提高編程","1800",{"path":2919,"stem":2920,"title":2921,"date":2720,"chapterOrder":2922,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++類型轉換","1900",{"path":2924,"stem":2925,"title":145,"date":2720,"chapterOrder":2926,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","2000-0100",{"path":2928,"stem":2929,"title":2930,"date":2720,"chapterOrder":2931,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":2933,"stem":2934,"title":2935,"date":2720,"chapterOrder":2936,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":2938,"stem":2939,"title":2940,"date":2720,"chapterOrder":2941,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","enum class","2000-0400",{"path":2943,"stem":2944,"title":2945,"date":2720,"chapterOrder":2946,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","範圍 for 循環","2000-0500",{"path":2948,"stem":2949,"title":2950,"date":2720,"chapterOrder":2951,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","結構化綁定","2000-0600",{"path":2953,"stem":2954,"title":152,"date":2720,"chapterOrder":2955,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","2000-0700",{"path":2957,"stem":2958,"title":2959,"date":2720,"chapterOrder":2960,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":2962,"stem":2963,"title":2964,"date":2720,"chapterOrder":2965,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","智能指針","2000-0900",{"path":2967,"stem":2968,"title":2969,"date":2720,"chapterOrder":2970,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","右值引用和移動語義","2000-1000",{"path":2718,"stem":2734,"title":5,"date":2720,"chapterOrder":2719,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},{"path":2973,"stem":2974,"title":163,"date":2720,"chapterOrder":2975,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","2000-1200",{"path":2977,"stem":2978,"title":2979,"date":2720,"chapterOrder":2980,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":2982,"stem":2983,"title":2984,"date":2720,"chapterOrder":2985,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":2987,"stem":2988,"title":2989,"date":2720,"chapterOrder":2990,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":2992,"stem":2993,"title":2994,"date":2720,"chapterOrder":2995,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":2997,"stem":2998,"title":2999,"date":2720,"chapterOrder":3000,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":3002,"stem":3003,"title":3004,"date":2720,"chapterOrder":3005,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":3007,"stem":3008,"title":3009,"date":2720,"chapterOrder":3010,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread 與 join","2000-1900-0100",{"path":3012,"stem":3013,"title":3014,"date":2720,"chapterOrder":3015,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 與 lock_guard","2000-1900-0200",{"path":3017,"stem":3018,"title":3019,"date":2720,"chapterOrder":3020,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","std::atomic","2000-1900-0300",{"path":3022,"stem":3023,"title":3024,"date":2720,"chapterOrder":3025,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":3027,"stem":3028,"title":3029,"date":2720,"chapterOrder":3030,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","併發編程","2000-1900",{"path":3032,"stem":3033,"title":3034,"date":2720,"chapterOrder":3035,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":3037,"stem":3038,"title":3039,"date":2720,"chapterOrder":3040,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","modules 簡介","2000-2100",{"path":3042,"stem":3043,"title":3044,"date":2720,"chapterOrder":3045,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","現代C++","2000",{"path":3047,"stem":3048,"title":3049,"date":2720,"chapterOrder":3050,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","定時器與異步 IO","2100-0100-0100",{"path":3052,"stem":3053,"title":3054,"date":2720,"chapterOrder":3055,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio 基礎","2100-0100-0200",{"path":3057,"stem":3058,"title":3059,"date":2720,"chapterOrder":3060,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","串口通信","2100-0100-0300",{"path":3062,"stem":3063,"title":3064,"date":2720,"chapterOrder":3065,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP 通信","2100-0100-0400",{"path":3067,"stem":3068,"title":3069,"date":2720,"chapterOrder":3070,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP 通信","2100-0100-0500",{"path":3072,"stem":3073,"title":3074,"date":2720,"chapterOrder":3075,"chapterDepth":329,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","機器人工程寫法與 ROS2 集成","2100-0100-0600",{"path":3077,"stem":3078,"title":3079,"date":2720,"chapterOrder":3080,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio異步IO庫","2100-0100",{"path":3082,"stem":3083,"title":3084,"date":2720,"chapterOrder":3085,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen線性代數庫","2100-0200",{"path":3087,"stem":3088,"title":3089,"date":2720,"chapterOrder":3090,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV計算機視覺庫","2100-0300",{"path":3092,"stem":3093,"title":3094,"date":2720,"chapterOrder":3095,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL點雲庫","2100-0400",{"path":3097,"stem":3098,"title":3099,"date":2720,"chapterOrder":3100,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus 李群李代數庫","2100-0500",{"path":3102,"stem":3103,"title":3104,"date":2720,"chapterOrder":3105,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","常用庫學習","2100",{"path":3107,"stem":3108,"title":3109,"date":2720,"chapterOrder":3110,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets與構建安裝","2200-0100",{"path":3112,"stem":3113,"title":3114,"date":2720,"chapterOrder":3115,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","頂層CMake與公共編譯選項","2200-0200",{"path":3117,"stem":3118,"title":3119,"date":2720,"chapterOrder":3120,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","src與lib模塊CMake詳解","2200-0300",{"path":3122,"stem":3123,"title":3124,"date":2720,"chapterOrder":3125,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","第三方庫依賴寫法","2200-0400",{"path":3127,"stem":3128,"title":3129,"date":2720,"chapterOrder":3130,"chapterDepth":318,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","模板擴展與常見問題","2200-0500",{"path":3132,"stem":3133,"title":3134,"date":2720,"chapterOrder":3135,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":2727},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake工程模板","2200",{"path":2723,"stem":3137,"title":3138,"date":2720,"chapterOrder":2728,"chapterDepth":2742,"docKey":2722,"docRoot":2723,"docTitle":2724,"isWikiDoc":348,"isWikiIndex":348},"_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++教程",{"variants":3140},[3141,3144,3147,3150,3151],{"path":3142,"localeSlug":3143,"i18nKey":2726},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","en-us",{"path":3145,"localeSlug":3146,"i18nKey":2726},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","zh-hant",{"path":3148,"localeSlug":3149,"i18nKey":2726},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","zh-hk",{"path":2718,"localeSlug":2730,"i18nKey":2726},{"path":3152,"localeSlug":3153,"i18nKey":2726},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","zh-cn",[3142,2733,3145,2733,3148,2733,2718,2733,3152,2733],1784646894781]