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