[{"data":1,"prerenderedAt":3157},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi":2736,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi":3141,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi":3156},{"id":4,"title":5,"body":6,"canonicalPath":2718,"chapter":2719,"chapterSort":2720,"date":2721,"description":311,"docI18nKey":2722,"docKey":2723,"docRoot":2724,"docTitle":2725,"extension":2726,"i18nKey":2727,"isBlogPost":2728,"isWikiDoc":348,"isWikiIndex":2728,"layout":2729,"legacyPath":2730,"locale":2731,"localeSlug":2732,"meta":2733,"navigation":348,"path":2718,"seo":2734,"sourcePath":2730,"sourceStem":2727,"stem":2727,"wikiDepth":318,"__hash__":2735},"content/wiki/2023-10-05-Cplusplus教学/ch18-11-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    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    // 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","    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[315,528,530],{"class":317,"line":529},23,[315,531,532],{"class":525},"    // 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    // 程序从 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    // 返回 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},"    // 返回 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    // 程序从 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    // 返回 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    // 程序从 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    // 返回 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    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    // 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    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    // std::function 可以保存普通函数、lambda 或函数对象。\n    // 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},"    // 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},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","18.11",18110000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","zh-CN","zh-cn",{},{"title":5,"description":311},"mipXTaWH_PkGB5Nb9cWl09YwsVBCX4yaxzsUe-BGyJc",[2737,2742,2748,2754,2760,2766,2772,2778,2784,2790,2796,2802,2808,2814,2820,2826,2832,2838,2844,2850,2856,2862,2868,2874,2879,2885,2886,2891,2897,2903,2909,2915,2921,2927,2933,2939,2945,2951,2957,2963,2969,2975,2981,2987,2993,2999,3004,3010,3016,3022,3028,3034,3040,3046,3052,3058,3064,3070,3076,3082,3088,3094,3099,3104,3109,3114,3119,3125,3131,3137],{"path":2738,"stem":2739,"title":2740,"date":2721,"chapter":556,"chapterSort":2741,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识",1000000,{"path":2743,"stem":2744,"title":2745,"date":2721,"chapter":2746,"chapterSort":2747,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期","10",10000000,{"path":2749,"stem":2750,"title":2751,"date":2721,"chapter":2752,"chapterSort":2753,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","wiki/2023-10-05-Cplusplus教学/ch11-引用","引用","11",11000000,{"path":2755,"stem":2756,"title":2757,"date":2721,"chapter":2758,"chapterSort":2759,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":2761,"stem":2762,"title":2763,"date":2721,"chapter":2764,"chapterSort":2765,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":2767,"stem":2768,"title":2769,"date":2721,"chapter":2770,"chapterSort":2771,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理","对象初始化和清理","13.2",13020000,{"path":2773,"stem":2774,"title":2775,"date":2721,"chapter":2776,"chapterSort":2777,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":2779,"stem":2780,"title":2781,"date":2721,"chapter":2782,"chapterSort":2783,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":2785,"stem":2786,"title":2787,"date":2721,"chapter":2788,"chapterSort":2789,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch13-5-继承","继承","13.5",13050000,{"path":2791,"stem":2792,"title":2793,"date":2721,"chapter":2794,"chapterSort":2795,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":2797,"stem":2798,"title":2799,"date":2721,"chapter":2800,"chapterSort":2801,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":2803,"stem":2804,"title":2805,"date":2721,"chapter":2806,"chapterSort":2807,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","wiki/2023-10-05-Cplusplus教学/ch14-文件操作","文件操作","14",14000000,{"path":2809,"stem":2810,"title":2811,"date":2721,"chapter":2812,"chapterSort":2813,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":2815,"stem":2816,"title":2817,"date":2721,"chapter":2818,"chapterSort":2819,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":2821,"stem":2822,"title":2823,"date":2721,"chapter":2824,"chapterSort":2825,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":2827,"stem":2828,"title":2829,"date":2721,"chapter":2830,"chapterSort":2831,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":2833,"stem":2834,"title":2835,"date":2721,"chapter":2836,"chapterSort":2837,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":2839,"stem":2840,"title":2841,"date":2721,"chapter":2842,"chapterSort":2843,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":2845,"stem":2846,"title":2847,"date":2721,"chapter":2848,"chapterSort":2849,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":2851,"stem":2852,"title":2853,"date":2721,"chapter":2854,"chapterSort":2855,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词","函数对象与谓词","16.7",16070000,{"path":2857,"stem":2858,"title":2859,"date":2721,"chapter":2860,"chapterSort":2861,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":2863,"stem":2864,"title":2865,"date":2721,"chapter":2866,"chapterSort":2867,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":2869,"stem":2870,"title":2871,"date":2721,"chapter":2872,"chapterSort":2873,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":2875,"stem":2876,"title":145,"date":2721,"chapter":2877,"chapterSort":2878,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","18.1",18010000,{"path":2880,"stem":2881,"title":2882,"date":2721,"chapter":2883,"chapterSort":2884,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":2718,"stem":2727,"title":5,"date":2721,"chapter":2719,"chapterSort":2720,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},{"path":2887,"stem":2888,"title":163,"date":2721,"chapter":2889,"chapterSort":2890,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","18.12",18120000,{"path":2892,"stem":2893,"title":2894,"date":2721,"chapter":2895,"chapterSort":2896,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":2898,"stem":2899,"title":2900,"date":2721,"chapter":2901,"chapterSort":2902,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":2904,"stem":2905,"title":2906,"date":2721,"chapter":2907,"chapterSort":2908,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":2910,"stem":2911,"title":2912,"date":2721,"chapter":2913,"chapterSort":2914,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":2916,"stem":2917,"title":2918,"date":2721,"chapter":2919,"chapterSort":2920,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":2922,"stem":2923,"title":2924,"date":2721,"chapter":2925,"chapterSort":2926,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono","std::chrono","18.18",18180000,{"path":2928,"stem":2929,"title":2930,"date":2721,"chapter":2931,"chapterSort":2932,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":2934,"stem":2935,"title":2936,"date":2721,"chapter":2937,"chapterSort":2938,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":2940,"stem":2941,"title":2942,"date":2721,"chapter":2943,"chapterSort":2944,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":2946,"stem":2947,"title":2948,"date":2721,"chapter":2949,"chapterSort":2950,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":2952,"stem":2953,"title":2954,"date":2721,"chapter":2955,"chapterSort":2956,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":2958,"stem":2959,"title":2960,"date":2721,"chapter":2961,"chapterSort":2962,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":2964,"stem":2965,"title":2966,"date":2721,"chapter":2967,"chapterSort":2968,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":2970,"stem":2971,"title":2972,"date":2721,"chapter":2973,"chapterSort":2974,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":2976,"stem":2977,"title":2978,"date":2721,"chapter":2979,"chapterSort":2980,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","using","18.3",18030000,{"path":2982,"stem":2983,"title":2984,"date":2721,"chapter":2985,"chapterSort":2986,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class","enum class","18.4",18040000,{"path":2988,"stem":2989,"title":2990,"date":2721,"chapter":2991,"chapterSort":2992,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":2994,"stem":2995,"title":2996,"date":2721,"chapter":2997,"chapterSort":2998,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":3000,"stem":3001,"title":152,"date":2721,"chapter":3002,"chapterSort":3003,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","18.7",18070000,{"path":3005,"stem":3006,"title":3007,"date":2721,"chapter":3008,"chapterSort":3009,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":3011,"stem":3012,"title":3013,"date":2721,"chapter":3014,"chapterSort":3015,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":3017,"stem":3018,"title":3019,"date":2721,"chapter":3020,"chapterSort":3021,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++","18",18000000,{"path":3023,"stem":3024,"title":3025,"date":2721,"chapter":3026,"chapterSort":3027,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":3029,"stem":3030,"title":3031,"date":2721,"chapter":3032,"chapterSort":3033,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":3035,"stem":3036,"title":3037,"date":2721,"chapter":3038,"chapterSort":3039,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":3041,"stem":3042,"title":3043,"date":2721,"chapter":3044,"chapterSort":3045,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":3047,"stem":3048,"title":3049,"date":2721,"chapter":3050,"chapterSort":3051,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":3053,"stem":3054,"title":3055,"date":2721,"chapter":3056,"chapterSort":3057,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":3059,"stem":3060,"title":3061,"date":2721,"chapter":3062,"chapterSort":3063,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":3065,"stem":3066,"title":3067,"date":2721,"chapter":3068,"chapterSort":3069,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":3071,"stem":3072,"title":3073,"date":2721,"chapter":3074,"chapterSort":3075,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":3077,"stem":3078,"title":3079,"date":2721,"chapter":3080,"chapterSort":3081,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":3083,"stem":3084,"title":3085,"date":2721,"chapter":3086,"chapterSort":3087,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":3089,"stem":3090,"title":3091,"date":2721,"chapter":3092,"chapterSort":3093,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":3095,"stem":3096,"title":3097,"date":2721,"chapter":562,"chapterSort":3098,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放",2000000,{"path":3100,"stem":3101,"title":3102,"date":2721,"chapter":567,"chapterSort":3103,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出",3000000,{"path":3105,"stem":3106,"title":3107,"date":2721,"chapter":572,"chapterSort":3108,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符",4000000,{"path":3110,"stem":3111,"title":3112,"date":2721,"chapter":577,"chapterSort":3113,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构",5000000,{"path":3115,"stem":3116,"title":3117,"date":2721,"chapter":582,"chapterSort":3118,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组",6000000,{"path":3120,"stem":3121,"title":3122,"date":2721,"chapter":3123,"chapterSort":3124,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":3126,"stem":3127,"title":3128,"date":2721,"chapter":3129,"chapterSort":3130,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":3132,"stem":3133,"title":3134,"date":2721,"chapter":3135,"chapterSort":3136,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":2728},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":2724,"stem":3138,"title":3139,"date":2721,"chapter":2729,"chapterSort":3140,"docKey":2723,"docRoot":2724,"docTitle":2725,"isWikiDoc":348,"isWikiIndex":348},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":3142},[3143,3146,3149,3152,3155],{"path":3144,"localeSlug":3145,"i18nKey":2727},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","en-us",{"path":3147,"localeSlug":3148,"i18nKey":2727},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","zh-hant",{"path":3150,"localeSlug":3151,"i18nKey":2727},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","zh-hk",{"path":3153,"localeSlug":3154,"i18nKey":2727},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","zh-tw",{"path":2718,"localeSlug":2732,"i18nKey":2727},[3144,2730,3147,2730,3150,2730,3153,2730,2718,2730],1780663036238]