[{"data":1,"prerenderedAt":2942},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan":2522,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan":2926,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan":2941},{"id":4,"title":5,"body":6,"canonicalPath":2504,"chapterDepth":83,"chapterOrder":2505,"date":2506,"description":76,"docI18nKey":2507,"docKey":2508,"docRoot":2509,"docTitle":2510,"extension":2511,"i18nKey":2512,"isBlogPost":2513,"isWikiDoc":389,"isWikiIndex":2513,"layout":2514,"legacyPath":2514,"locale":2515,"localeSlug":2516,"meta":2517,"navigation":389,"path":2504,"seo":2518,"sourcePath":2519,"sourceStem":2512,"stem":2520,"wikiDepth":83,"__hash__":2521},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环.md","range-based for loop",{"type":7,"value":8,"toc":2480},"minimark",[9,14,18,21,25,37,41,44,48,55,59,70,133,136,221,224,294,297,339,354,358,468,472,552,556,559,642,646,651,820,825,833,837,1142,1146,1152,1156,1470,1474,1480,1484,1680,1684,1690,1694,2017,2021,2027,2031,2034,2038,2041,2044,2202,2206,2211,2258,2261,2266,2309,2315,2320,2362,2365,2368,2387,2390,2431,2435,2466,2470,2476],[10,11,13],"h2",{"id":12},"what-problem-does-this-section-solve","What problem does this section solve?",[15,16,17],"p",{},"Traditional microcontroller loop iteration over containers requires writing three components (initialization, condition, increment), which is error-prone: out-of-bounds indices, incorrect boundary conditions, type mismatches, and so on.",[15,19,20],{},"The range-based for loop allows you to write code that operates on each element in a container without worrying about subscripts or iterators, making the code more concise and safe.",[10,22,24],{"id":23},"what-is-this-feature","What is this feature?",[15,26,27,28,32,33,36],{},"The range-based for loop is a syntactic sugar introduced in C++11 that allows you to directly iterate over each element in a container (or any type with ",[29,30,31],"code",{},"begin()","\u002F",[29,34,35],{},"end()","), with compilers automatically generating the corresponding iterator code.",[10,38,40],{"id":39},"c-standard-version","C++ standard version",[15,42,43],{},"C++11 (basics), C++20 added initialization statement support.",[10,45,47],{"id":46},"required-header-files","Required header files",[15,49,50,51,54],{},"No extra header files are needed. Range-based for is a language feature. However, the container being iterated over must include its corresponding header file (e.g., ",[29,52,53],{},"\u003Cvector>",").",[10,56,58],{"id":57},"从传统-for-到范围-for","从传统 for 到范围 for",[15,60,61,62,65,66,69],{},"在学习范围 for 之前，先回顾一下传统 ",[29,63,64],{},"for"," 如何遍历 STL 容器。假设有一个 ",[29,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","",[29,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",[15,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",[29,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,64],{"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",[15,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",[29,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,64],{"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},[15,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",[29,301,302,314,318,335],{"__ignoreMap":76},[80,303,304,306,308,311],{"class":82,"line":83},[80,305,64],{"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},[15,340,341,342,344,345,348,349,344,351,353],{},"下标写法直观，但只适用于 ",[29,343,68],{},"、",[29,346,347],{},"array"," 等支持下标访问的容器；迭代器写法可以用于更多 STL 容器，但代码较长。范围 for 隐藏了 ",[29,350,31],{},[29,352,35],{}," 和迭代器递增等细节，更直接地表达“依次处理容器中的每个元素”。",[10,355,357],{"id":356},"basic-syntax","Basic Syntax",[71,359,361],{"className":73,"code":360,"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",[29,362,363,370,374,380,384,391,397,413,418,424,429,434,440,452,457,463],{"__ignoreMap":76},[80,364,365,367],{"class":82,"line":83},[80,366,64],{"class":94},[80,368,369],{"class":90}," (元素类型 变量名 : 容器)\n",[80,371,372],{"class":82,"line":187},[80,373,190],{"class":90},[80,375,376],{"class":82,"line":193},[80,377,379],{"class":378},"sJ8bj","    \u002F\u002F 使用变量名\n",[80,381,382],{"class":82,"line":217},[80,383,220],{"class":90},[80,385,387],{"class":82,"line":386},5,[80,388,390],{"emptyLinePlaceholder":389},true,"\n",[80,392,394],{"class":82,"line":393},6,[80,395,396],{"class":378},"\u002F\u002F 推荐：不修改元素用 const auto&\n",[80,398,400,402,404,407,410],{"class":82,"line":399},7,[80,401,64],{"class":94},[80,403,147],{"class":90},[80,405,406],{"class":94},"const",[80,408,409],{"class":94}," auto&",[80,411,412],{"class":90}," 变量名 : 容器)\n",[80,414,416],{"class":82,"line":415},8,[80,417,190],{"class":90},[80,419,421],{"class":82,"line":420},9,[80,422,423],{"class":378},"    \u002F\u002F 只读访问\n",[80,425,427],{"class":82,"line":426},10,[80,428,220],{"class":90},[80,430,432],{"class":82,"line":431},11,[80,433,390],{"emptyLinePlaceholder":389},[80,435,437],{"class":82,"line":436},12,[80,438,439],{"class":378},"\u002F\u002F 要修改元素用 auto&\n",[80,441,443,445,447,450],{"class":82,"line":442},13,[80,444,64],{"class":94},[80,446,147],{"class":90},[80,448,449],{"class":94},"auto&",[80,451,412],{"class":90},[80,453,455],{"class":82,"line":454},14,[80,456,190],{"class":90},[80,458,460],{"class":82,"line":459},15,[80,461,462],{"class":378},"    \u002F\u002F 可以修改元素\n",[80,464,466],{"class":82,"line":465},16,[80,467,220],{"class":90},[10,469,471],{"id":470},"common-usage","Common Usage",[473,474,475,492],"table",{},[476,477,478],"thead",{},[479,480,481,486,489],"tr",{},[482,483,485],"th",{"align":484},"left","Usage",[482,487,488],{"align":484},"Explanation",[482,490,491],{"align":484},"When to use",[493,494,495,509,526,539],"tbody",{},[479,496,497,503,506],{},[498,499,500],"td",{"align":484},[29,501,502],{},"for (auto x : c)",[498,504,505],{"align":484},"value copy traversal",[498,507,508],{"align":484},"Element types small (int\u002Fdouble, etc.)",[479,510,511,516,519],{},[498,512,513],{"align":484},[29,514,515],{},"for (const auto& x : c)",[498,517,518],{"align":484},"read-only reference traversal",[498,520,521,525],{"align":484},[522,523,524],"strong",{},"Most commonly used",", to avoid copying large objects.",[479,527,528,533,536],{},[498,529,530],{"align":484},[29,531,532],{},"for (auto& x : c)",[498,534,535],{"align":484},"modifiable reference traversal",[498,537,538],{"align":484},"Need to modify container elements",[479,540,541,546,549],{},[498,542,543],{"align":484},[29,544,545],{},"for (int x : {1, 2, 3})",[498,547,548],{"align":484},"Iterate through the initial values list",[498,550,551],{"align":484},"Fast traversal of a known small set",[10,553,555],{"id":554},"when-you-dont-use-range-based-for","When you don't use range-based for",[15,557,558],{},"Range-based for is suitable for \"accessing elements one by one.\" If your logic relies on indices, adjacent elements, reverse traversal, skipping iterations, or modifying container elements during traversal, traditional for loops or iterator loops are clearer instead.",[473,560,561,574],{},[476,562,563],{},[479,564,565,568,571],{},[482,566,567],{"align":484},"Requirement",[482,569,570],{"align":484},"Recommended Writing Style",[482,572,573],{"align":484},"Reason",[493,575,576,587,599,613,631],{},[479,577,578,581,584],{},[498,579,580],{"align":484},"Read-only access to each element",[498,582,583],{"align":484},"scope for",[498,585,586],{"align":484},"most concise",[479,588,589,592,596],{},[498,590,591],{"align":484},"Modify the value of each element",[498,593,594],{"align":484},[29,595,532],{},[498,597,598],{"align":484},"directly modify the original element",[479,600,601,604,610],{},[498,602,603],{"align":484},"Understood. Subscript.",[498,605,606,607],{"align":484},"Traditional ",[29,608,609],{},"for (size_t i = 0; ...)",[498,611,612],{"align":484},"Subscripts are part of the logic.",[479,614,615,618,621],{},[498,616,617],{"align":484},"compare adjacent elements",[498,619,620],{"align":484},"traditional for",[498,622,623,624,627,628],{"align":484},"To access ",[29,625,626],{},"i"," and ",[29,629,630],{},"i - 1",[479,632,633,636,639],{},[498,634,635],{"align":484},"deleting elements while traversing",[498,637,638],{"align":484},"Iterator loop \u002F Algorithm",[498,640,641],{"align":484},"Range-for loops are prone to triggering iterator invalidation.",[10,643,645],{"id":644},"example-code","Example code",[647,648,650],"h3",{"id":649},"example-1-traversing-a-vector-using-range-for","Example 1: Traversing a vector using range for",[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",[29,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,390],{"emptyLinePlaceholder":389},[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":386},[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":393},[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":399},[80,726,390],{"emptyLinePlaceholder":389},[80,728,729],{"class":82,"line":415},[80,730,731],{"class":378},"    \u002F\u002F 范围 for 遍历\n",[80,733,734,736,738,740,743],{"class":82,"line":420},[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":426},[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":431},[80,759,760],{"class":90},"    {\n",[80,762,763,766,768,770,772,774,776],{"class":82,"line":436},[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":442},[80,781,782],{"class":90},"    }\n",[80,784,785,787,789,791,794,797,800],{"class":82,"line":454},[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":459},[80,805,390],{"emptyLinePlaceholder":389},[80,807,808,811,813],{"class":82,"line":465},[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},[15,821,822,69],{},[522,823,824],{},"Results",[71,826,831],{"className":827,"code":829,"language":830},[828],"language-text","elements: 10 20 30 40 50 \n","text",[29,832,829],{"__ignoreMap":76},[647,834,836],{"id":835},"example-2-based-on-example-1-the-difference-between-const-auto-and-auto","Example 2: Based on Example 1, the difference between const auto& and 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",[29,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,390],{"emptyLinePlaceholder":389},[80,866,867,869,871],{"class":82,"line":386},[80,868,310],{"class":94},[80,870,681],{"class":86},[80,872,684],{"class":90},[80,874,875],{"class":82,"line":393},[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":399},[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":415},[80,918,390],{"emptyLinePlaceholder":389},[80,920,921],{"class":82,"line":420},[80,922,923],{"class":378},"    \u002F\u002F const auto&：只读遍历，不拷贝（推荐）\n",[80,925,926,928,930,932,935],{"class":82,"line":426},[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":431},[80,940,749],{"class":94},[80,942,147],{"class":90},[80,944,406],{"class":94},[80,946,409],{"class":94},[80,948,949],{"class":90}," s : names)\n",[80,951,952],{"class":82,"line":436},[80,953,760],{"class":90},[80,955,956,958,960,962,965,967,969],{"class":82,"line":442},[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":454},[80,974,975],{"class":378},"        \u002F\u002F s = \"X\";",[80,977,978],{"class":378},"  \u002F\u002F ❌ 编译错误！const 引用不能修改\n",[80,980,981],{"class":82,"line":459},[80,982,782],{"class":90},[80,984,985,987,989,991,993,995,997],{"class":82,"line":465},[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,390],{"emptyLinePlaceholder":389},[80,1004,1006],{"class":82,"line":1005},18,[80,1007,1008],{"class":378},"    \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,449],{"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":378},"  \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,406],{"class":94},[80,1076,409],{"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,390],{"emptyLinePlaceholder":389},[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},[15,1143,1144,69],{},[522,1145,824],{},[71,1147,1150],{"className":1148,"code":1149,"language":830},[828],"const auto&: Alice Bob Charlie \nafter modify: Alice! Bob! Charlie! \n",[29,1151,1149],{"__ignoreMap":76},[647,1153,1155],{"id":1154},"example-3-based-on-example-2-iterating-through-the-initial-value-list-and-map","Example 3: Based on Example 2, iterating through the initial value list and 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",[29,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,390],{"emptyLinePlaceholder":389},[80,1185,1186,1188,1190],{"class":82,"line":386},[80,1187,310],{"class":94},[80,1189,681],{"class":86},[80,1191,684],{"class":90},[80,1193,1194],{"class":82,"line":393},[80,1195,190],{"class":90},[80,1197,1198],{"class":82,"line":399},[80,1199,1200],{"class":378},"    \u002F\u002F 直接遍历初始值列表\n",[80,1202,1203,1205,1207,1209,1212],{"class":82,"line":415},[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":420},[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":426},[80,1258,760],{"class":90},[80,1260,1261,1263,1265,1267,1269,1271,1273],{"class":82,"line":431},[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":436},[80,1278,782],{"class":90},[80,1280,1281,1283,1285,1287,1289,1291,1293],{"class":82,"line":442},[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":454},[80,1298,390],{"emptyLinePlaceholder":389},[80,1300,1301],{"class":82,"line":459},[80,1302,1303],{"class":378},"    \u002F\u002F 遍历 map\n",[80,1305,1306,1308,1311,1313,1315,1318,1321,1324,1326],{"class":82,"line":465},[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,390],{"emptyLinePlaceholder":389},[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,406],{"class":94},[80,1405,409],{"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,390],{"emptyLinePlaceholder":389},[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},[15,1471,1472,69],{},[522,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",[29,1479,1477],{"__ignoreMap":76},[647,1481,1483],{"id":1482},"example-4-based-on-example-3-using-c17-structured-bindings-to-traverse-a-map","Example 4: Based on Example 3, using C++17 structured bindings to traverse a 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",[29,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,390],{"emptyLinePlaceholder":389},[80,1512,1513,1515,1517],{"class":82,"line":386},[80,1514,310],{"class":94},[80,1516,681],{"class":86},[80,1518,684],{"class":90},[80,1520,1521],{"class":82,"line":393},[80,1522,190],{"class":90},[80,1524,1525,1527,1529,1531,1533,1535,1537,1539,1541],{"class":82,"line":399},[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":415},[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":420},[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":426},[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":431},[80,1582,1374],{"class":90},[80,1584,1585],{"class":82,"line":436},[80,1586,390],{"emptyLinePlaceholder":389},[80,1588,1589],{"class":82,"line":442},[80,1590,1591],{"class":378},"    \u002F\u002F C++17 结构化绑定：直接解包 key 和 value\n",[80,1593,1594,1596,1598,1600,1603,1605,1607],{"class":82,"line":454},[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":459},[80,1612,749],{"class":94},[80,1614,147],{"class":90},[80,1616,406],{"class":94},[80,1618,409],{"class":94},[80,1620,1621],{"class":90}," [name, score] : scores)\n",[80,1623,1624],{"class":82,"line":465},[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,390],{"emptyLinePlaceholder":389},[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},[15,1681,1682,69],{},[522,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",[29,1689,1687],{"__ignoreMap":76},[647,1691,1693],{"id":1692},"example-5-based-on-example-4-when-subscripts-are-required-do-not-force-the-use-of-range-for-loops","Example 5: Based on Example 4, when subscripts are required, do not force the use of range-for loops.",[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",[29,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":386},[80,1727,390],{"emptyLinePlaceholder":389},[80,1729,1730,1732,1734],{"class":82,"line":393},[80,1731,310],{"class":94},[80,1733,681],{"class":86},[80,1735,684],{"class":90},[80,1737,1738],{"class":82,"line":399},[80,1739,190],{"class":90},[80,1741,1742],{"class":82,"line":415},[80,1743,1744],{"class":378},"    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[80,1746,1747],{"class":82,"line":420},[80,1748,1749],{"class":378},"    \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":426},[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":431},[80,1793,390],{"emptyLinePlaceholder":389},[80,1795,1796,1798,1800,1802,1805],{"class":82,"line":436},[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":442},[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":454},[80,1821,760],{"class":90},[80,1823,1824,1826,1828,1830,1833,1835,1837],{"class":82,"line":459},[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":465},[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,390],{"emptyLinePlaceholder":389},[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,390],{"emptyLinePlaceholder":389},[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},[15,2018,2019,69],{},[522,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",[29,2026,2024],{"__ignoreMap":76},[10,2028,2030],{"id":2029},"runtime-results","runtime results",[15,2032,2033],{},"See the \"running results\" for each example above.",[10,2035,2037],{"id":2036},"key-syntax-explanation-in-the-example","Key syntax explanation in the example",[15,2039,2040],{},"|Here is the translation of the provided Simplified Chinese Markdown fragment into natural American English, following all specified rules.",[2042,2043],"hr",{},[473,2045,2046,2067],{},[476,2047,2048],{},[479,2049,2050,2055,2058,2061,2064],{},[482,2051,2052],{"align":484},[522,2053,2054],{},"Example",[482,2056,2057],{"align":484},"Discusses what",[482,2059,2060],{"align":484},"Newly emerged syntax",[482,2062,2063],{"align":484},"Why write it this way",[482,2065,2066],{"align":484},"Precautions",[493,2068,2069,2088,2114,2138,2157,2179],{},[479,2070,2071,2074,2077,2082,2085],{},[498,2072,2073],{"align":484},"Example 1",[498,2075,2076],{"align":484},"The most basic range-for loop.",[498,2078,2079],{"align":484},[29,2080,2081],{},"for (int n : v)",[498,2083,2084],{"align":484},"for each element n in v",[498,2086,2087],{"align":484},"This method copies each int, but since ints are small, it doesn't matter.",[479,2089,2090,2093,2096,2103,2111],{},[498,2091,2092],{"align":484},"Example 2",[498,2094,2095],{"align":484},"const auto& vs auto&",[498,2097,2098,344,2101],{"align":484},[29,2099,2100],{},"const auto&",[29,2102,449],{},[498,2104,2105,2107,2108,2110],{"align":484},[29,2106,2100],{}," avoid copying; ",[29,2109,449],{}," modifiable elements",[498,2112,2113],{"align":484},"When iterating through large objects like strings, always use references.",[479,2115,2116,2119,2122,2129,2132],{},[498,2117,2118],{"align":484},"Example 3",[498,2120,2121],{"align":484},"Iterate through the initial value list and map",[498,2123,2124,2125,2128],{"align":484},"Iterate over ",[29,2126,2127],{},"{...}"," and map",[498,2130,2131],{"align":484},"The initial value list can be directly placed inside the for",[498,2133,2134,2135],{"align":484},"What is traversed out by map is ",[29,2136,2137],{},"std::pair",[479,2139,2140,2143,2146,2151,2154],{},[498,2141,2142],{"align":484},"Example 4",[498,2144,2145],{"align":484},"Unpacking a map with structured binding",[498,2147,2148],{"align":484},[29,2149,2150],{},"for (const auto& [k, v] : m)",[498,2152,2153],{"align":484},"C++17 syntax allows for clearer naming of keys and values separately.",[498,2155,2156],{"align":484},"If C++17 cannot be used, you can opt for the approach in Example 3. Could you please provide more details about Example 3 so I can give a more specific suggestion?",[479,2158,2159,2162,2173,2175,2177],{},[498,2160,2161],{"align":484},"Example 5",[498,2163,2164,2165,2168,2169,2172],{"align":484},"Use the ",[29,2166,2167],{},"~"," symbol for subscripts, like this: ",[29,2170,2171],{},"~text~",".",[498,2174],{"align":484},[498,2176],{"align":484},[498,2178],{"align":484},[479,2180,2181,2188,2194,2197,2200],{},[498,2182,2183,2184,2187],{"align":484},"For example: ",[29,2185,2186],{},"H~2~O"," renders as H₂O.",[498,2189,2190,2193],{"align":484},[29,2191,2192],{},"std::size_t i",", traditional for loop",[498,2195,2196],{"align":484},"Comparing adjacent elements cannot do without subscripts.",[498,2198,2199],{"align":484},"Don't sacrifice clarity for the sake of using new syntax.",[498,2201],{"align":484},[10,2203,2205],{"id":2204},"common-errors","Common Errors",[15,2207,2208],{},[522,2209,2210],{},"Error 1: Adding or removing elements during iteration",[71,2212,2214],{"className":73,"code":2213,"language":75,"meta":76,"style":76},"for (auto x : v)\n{\n    v.push_back(x * 2);  \u002F\u002F ❌ 可能导致迭代器失效、无限循环！\n}\n",[29,2215,2216,2227,2231,2254],{"__ignoreMap":76},[80,2217,2218,2220,2222,2224],{"class":82,"line":83},[80,2219,64],{"class":94},[80,2221,147],{"class":90},[80,2223,237],{"class":94},[80,2225,2226],{"class":90}," x : v)\n",[80,2228,2229],{"class":82,"line":187},[80,2230,190],{"class":90},[80,2232,2233,2236,2239,2242,2245,2248,2251],{"class":82,"line":193},[80,2234,2235],{"class":90},"    v.",[80,2237,2238],{"class":86},"push_back",[80,2240,2241],{"class":90},"(x ",[80,2243,2244],{"class":94},"*",[80,2246,2247],{"class":107}," 2",[80,2249,2250],{"class":90},");",[80,2252,2253],{"class":378},"  \u002F\u002F ❌ 可能导致迭代器失效、无限循环！\n",[80,2255,2256],{"class":82,"line":217},[80,2257,220],{"class":90},[15,2259,2260],{},"Correct approach: Collect new containers first and perform unified operations after the loop ends, or use a traditional iterator for looping.",[15,2262,2263],{},[522,2264,2265],{},"Error 2: Using auto without reference, changes are ineffective",[71,2267,2269],{"className":73,"code":2268,"language":75,"meta":76,"style":76},"for (auto s : names)\n{\n    s = \"X\";  \u002F\u002F 修改的是拷贝！\n}\n\u002F\u002F names 没有变化！\n",[29,2270,2271,2281,2285,2300,2304],{"__ignoreMap":76},[80,2272,2273,2275,2277,2279],{"class":82,"line":83},[80,2274,64],{"class":94},[80,2276,147],{"class":90},[80,2278,237],{"class":94},[80,2280,949],{"class":90},[80,2282,2283],{"class":82,"line":187},[80,2284,190],{"class":90},[80,2286,2287,2290,2292,2295,2297],{"class":82,"line":193},[80,2288,2289],{"class":90},"    s ",[80,2291,101],{"class":94},[80,2293,2294],{"class":210}," \"X\"",[80,2296,1043],{"class":90},[80,2298,2299],{"class":378},"  \u002F\u002F 修改的是拷贝！\n",[80,2301,2302],{"class":82,"line":217},[80,2303,220],{"class":90},[80,2305,2306],{"class":82,"line":386},[80,2307,2308],{"class":378},"\u002F\u002F names 没有变化！\n",[15,2310,2311,2312,2172],{},"Correct approach: To modify container elements, use ",[29,2313,2314],{},"for (auto& s : names)",[15,2316,2317],{},[522,2318,2319],{},"Error 3: Accessing another container by index while iterating",[71,2321,2323],{"className":73,"code":2322,"language":75,"meta":76,"style":76},"for (int n : v1)\n{\n    v2[i++] = n;  \u002F\u002F i 从哪来？\n}\n",[29,2324,2325,2336,2340,2358],{"__ignoreMap":76},[80,2326,2327,2329,2331,2333],{"class":82,"line":83},[80,2328,64],{"class":94},[80,2330,147],{"class":90},[80,2332,310],{"class":94},[80,2334,2335],{"class":90}," n : v1)\n",[80,2337,2338],{"class":82,"line":187},[80,2339,190],{"class":90},[80,2341,2342,2345,2347,2350,2352,2355],{"class":82,"line":193},[80,2343,2344],{"class":90},"    v2[i",[80,2346,181],{"class":94},[80,2348,2349],{"class":90},"] ",[80,2351,101],{"class":94},[80,2353,2354],{"class":90}," n;",[80,2356,2357],{"class":378},"  \u002F\u002F i 从哪来？\n",[80,2359,2360],{"class":82,"line":217},[80,2361,220],{"class":90},[15,2363,2364],{},"正确做法：需要下标时，传统 for 循环可能更合适，或者用枚举技巧。",[10,2366,2367],{"id":2367},"使用建议",[2369,2370,2371,2375,2378,2381,2384],"ul",{},[2372,2373,2374],"li",{},"明确目标：在开始前确定您的具体需求，以便选择最合适的工具或教程。",[2372,2376,2377],{},"充分利用资源：参考官方文档、教程和博客，这些资料能帮助您快速上手并解决问题。",[2372,2379,2380],{},"实践应用：通过动手操作项目或编写代码来巩固学习成果，提升实际操作能力。",[2372,2382,2383],{},"问题解决：遇到困难时，查阅参考资料或寻求社区支持，逐步培养独立解决问题的能力。",[2372,2385,2386],{},"分享经验：完成项目后，可以撰写文章或博客分享心得，帮助其他学习者。",[15,2388,2389],{},"如果需要针对特定领域（如单片机、机器人或环境搭建）的进一步建议，请提供更多信息，我将为您细化内容。",[2391,2392,2393,2401,2409,2415,2421],"ol",{},[2372,2394,2395,2400],{},[522,2396,2397,2398],{},"Do not modify elements: use ",[29,2399,2100],{}," — this is the default option.",[2372,2402,2403,2408],{},[522,2404,2405,2406],{},"Modify element: use ",[29,2407,449],{}," — clearly intended to modify.",[2372,2410,2411,2412,2414],{},"For basic types (int\u002Fdouble) that are not modified: you can use ",[29,2413,237],{}," — the copy overhead is negligible.",[2372,2416,2417,2420],{},[522,2418,2419],{},"When you need subscripts, stick to the traditional for"," — range-based for isn't suitable for all scenarios.",[2372,2422,2423,2430],{},[522,2424,2425,2426,2429],{},"For map traversal, preferably use ",[29,2427,2428],{},"[key, value]"," structured bindings"," (from C++17 onwards).",[10,2432,2434],{"id":2433},"summary","Summary",[2369,2436,2437,2443,2454,2463],{},[2372,2438,2439,2440,2172],{},"The syntax for range-based for loop to traverse a container is ",[29,2441,2442],{},"for (const auto& x : container)",[2372,2444,2445,2447,2448,2450,2451,2453],{},[29,2446,2100],{}," Read-only references (the default choice), ",[29,2449,449],{}," Modifiable references, ",[29,2452,237],{}," Value copies.",[2372,2455,2456,2457,2459,2460,2462],{},"Applicable to any type that has ",[29,2458,31],{}," \u002F ",[29,2461,35],{}," (STL containers, initializer lists, etc.).",[2372,2464,2465],{},"During traversal, you cannot add or remove elements from the container, as it will cause iterator invalidation.",[647,2467,2469],{"id":2468},"engineering-expansion","Engineering expansion",[15,2471,2472,2473,2475],{},"In ROS2, range-based for loops are frequently used for scenarios like iterating over sensor data lists or node lists. Similarly, in Boost.Asio, range-based for loops are often employed to traverse connection lists. By mastering the idiom ",[29,2474,2100],{},", you can write code that matches the style of excellent open-source projects.",[2477,2478,2479],"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":2481},[2482,2483,2484,2485,2486,2487,2488,2489,2490,2497,2498,2499,2500,2501],{"id":12,"depth":187,"text":13},{"id":23,"depth":187,"text":24},{"id":39,"depth":187,"text":40},{"id":46,"depth":187,"text":47},{"id":57,"depth":187,"text":58},{"id":356,"depth":187,"text":357},{"id":470,"depth":187,"text":471},{"id":554,"depth":187,"text":555},{"id":644,"depth":187,"text":645,"children":2491},[2492,2493,2494,2495,2496],{"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":2029,"depth":187,"text":2030},{"id":2036,"depth":187,"text":2037},{"id":2204,"depth":187,"text":2205},{"id":2367,"depth":187,"text":2367},{"id":2433,"depth":187,"text":2434,"children":2502},[2503],{"id":2468,"depth":193,"text":2469},"\u002Fen-us\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","en-us:2023-10-05-cplusplus-jiao-xue","\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环",false,null,"en-US","en-us",{},{"title":5,"description":76},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","_z2itvlCQcAJe2XDipM_CKxvNunvimfx8kjWag3oFcU",[2523,2529,2534,2539,2544,2549,2554,2558,2563,2568,2573,2578,2583,2588,2593,2598,2603,2608,2613,2618,2623,2628,2633,2638,2643,2648,2653,2658,2663,2668,2673,2678,2683,2688,2693,2698,2703,2708,2712,2717,2722,2727,2728,2733,2738,2743,2748,2753,2758,2763,2768,2773,2778,2783,2788,2793,2798,2803,2808,2813,2818,2823,2828,2833,2838,2843,2848,2853,2858,2863,2868,2873,2878,2883,2888,2893,2898,2903,2908,2913,2918,2923],{"path":2524,"stem":2525,"title":2526,"date":2506,"chapterOrder":2527,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++ Development Environment Setup and Testing","0100",0,{"path":2530,"stem":2531,"title":2532,"date":2506,"chapterOrder":2533,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++ Basics","0200",{"path":2535,"stem":2536,"title":2537,"date":2506,"chapterOrder":2538,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","Data Types and Data Storage","0300",{"path":2540,"stem":2541,"title":2542,"date":2506,"chapterOrder":2543,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","Input and Output","0400",{"path":2545,"stem":2546,"title":2547,"date":2506,"chapterOrder":2548,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","operator","0500",{"path":2550,"stem":2551,"title":2552,"date":2506,"chapterOrder":2553,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","program flow structure","0600",{"path":2555,"stem":2556,"title":347,"date":2506,"chapterOrder":2557,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","0700",{"path":2559,"stem":2560,"title":2561,"date":2506,"chapterOrder":2562,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","Functions and Header Files","0800",{"path":2564,"stem":2565,"title":2566,"date":2506,"chapterOrder":2567,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","pointer","0900",{"path":2569,"stem":2570,"title":2571,"date":2506,"chapterOrder":2572,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","Structures and Unions","1000",{"path":2574,"stem":2575,"title":2576,"date":2506,"chapterOrder":2577,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","Memory Partitioning and Lifecycle","1100",{"path":2579,"stem":2580,"title":2581,"date":2506,"chapterOrder":2582,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","reference","1200",{"path":2584,"stem":2585,"title":2586,"date":2506,"chapterOrder":2587,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","Advanced Functions and Namespaces","1300",{"path":2589,"stem":2590,"title":2591,"date":2506,"chapterOrder":2592,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","encapsulation","1400-0100",{"path":2594,"stem":2595,"title":2596,"date":2506,"chapterOrder":2597,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","Object initialization and cleanup","1400-0200",{"path":2599,"stem":2600,"title":2601,"date":2506,"chapterOrder":2602,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","Object Model and the `this` Pointer","1400-0300",{"path":2604,"stem":2605,"title":2606,"date":2506,"chapterOrder":2607,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","Friends and operator overloading","1400-0400",{"path":2609,"stem":2610,"title":2611,"date":2506,"chapterOrder":2612,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","inheritance","1400-0500",{"path":2614,"stem":2615,"title":2616,"date":2506,"chapterOrder":2617,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","polymorphism","1400-0600",{"path":2619,"stem":2620,"title":2621,"date":2506,"chapterOrder":2622,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","Classes and Objects","1400",{"path":2624,"stem":2625,"title":2626,"date":2506,"chapterOrder":2627,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","File operations","1500",{"path":2629,"stem":2630,"title":2631,"date":2506,"chapterOrder":2632,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理","1600",{"path":2634,"stem":2635,"title":2636,"date":2506,"chapterOrder":2637,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","template","1700",{"path":2639,"stem":2640,"title":2641,"date":2506,"chapterOrder":2642,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","Introduction to STL","1800-0100",{"path":2644,"stem":2645,"title":2646,"date":2506,"chapterOrder":2647,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":2649,"stem":2650,"title":2651,"date":2506,"chapterOrder":2652,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string container","1800-0300",{"path":2654,"stem":2655,"title":2656,"date":2506,"chapterOrder":2657,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector容器","vector 容器","1800-0400",{"path":2659,"stem":2660,"title":2661,"date":2506,"chapterOrder":2662,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-deque-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-deque容器","deque 容器","1800-0500",{"path":2664,"stem":2665,"title":2666,"date":2506,"chapterOrder":2667,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-stack-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-stack容器","stack 容器","1800-0600",{"path":2669,"stem":2670,"title":2671,"date":2506,"chapterOrder":2672,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-queue-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-queue容器","queue container","1800-0700",{"path":2674,"stem":2675,"title":2676,"date":2506,"chapterOrder":2677,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-list-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-list容器","list 容器","1800-0800",{"path":2679,"stem":2680,"title":2681,"date":2506,"chapterOrder":2682,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0900-set-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0900-set容器","set \u002F multiset 容器","1800-0900",{"path":2684,"stem":2685,"title":2686,"date":2506,"chapterOrder":2687,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1000-map-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1000-map容器","map \u002F multimap 容器","1800-1000",{"path":2689,"stem":2690,"title":2691,"date":2506,"chapterOrder":2692,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1100-han-shu-dui-xiang-yu-wei-ci","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1100-函数对象与谓词","Function objects and predicates","1800-1100",{"path":2694,"stem":2695,"title":2696,"date":2506,"chapterOrder":2697,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1200-chang-yong-suan-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1200-常用算法","Common algorithms","1800-1200",{"path":2699,"stem":2700,"title":2701,"date":2506,"chapterOrder":2702,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","Level up your programming with STL.","1800",{"path":2704,"stem":2705,"title":2706,"date":2506,"chapterOrder":2707,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++ Type Casting","1900",{"path":2709,"stem":2710,"title":237,"date":2506,"chapterOrder":2711,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","2000-0100",{"path":2713,"stem":2714,"title":2715,"date":2506,"chapterOrder":2716,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":2718,"stem":2719,"title":2720,"date":2506,"chapterOrder":2721,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":2723,"stem":2724,"title":2725,"date":2506,"chapterOrder":2726,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","enum class","2000-0400",{"path":2504,"stem":2520,"title":5,"date":2506,"chapterOrder":2505,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},{"path":2729,"stem":2730,"title":2731,"date":2506,"chapterOrder":2732,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","structured binding","2000-0600",{"path":2734,"stem":2735,"title":2736,"date":2506,"chapterOrder":2737,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr","2000-0700",{"path":2739,"stem":2740,"title":2741,"date":2506,"chapterOrder":2742,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":2744,"stem":2745,"title":2746,"date":2506,"chapterOrder":2747,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","Smart pointer","2000-0900",{"path":2749,"stem":2750,"title":2751,"date":2506,"chapterOrder":2752,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","Rvalue references and move semantics","2000-1000",{"path":2754,"stem":2755,"title":2756,"date":2506,"chapterOrder":2757,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda expression","2000-1100",{"path":2759,"stem":2760,"title":2761,"date":2506,"chapterOrder":2762,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function","2000-1200",{"path":2764,"stem":2765,"title":2766,"date":2506,"chapterOrder":2767,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":2769,"stem":2770,"title":2771,"date":2506,"chapterOrder":2772,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":2774,"stem":2775,"title":2776,"date":2506,"chapterOrder":2777,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":2779,"stem":2780,"title":2781,"date":2506,"chapterOrder":2782,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":2784,"stem":2785,"title":2786,"date":2506,"chapterOrder":2787,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":2789,"stem":2790,"title":2791,"date":2506,"chapterOrder":2792,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":2794,"stem":2795,"title":2796,"date":2506,"chapterOrder":2797,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread and join","2000-1900-0100",{"path":2799,"stem":2800,"title":2801,"date":2506,"chapterOrder":2802,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 与 lock_guard","2000-1900-0200",{"path":2804,"stem":2805,"title":2806,"date":2506,"chapterOrder":2807,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","std::atomic","2000-1900-0300",{"path":2809,"stem":2810,"title":2811,"date":2506,"chapterOrder":2812,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":2814,"stem":2815,"title":2816,"date":2506,"chapterOrder":2817,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","Concurrent programming","2000-1900",{"path":2819,"stem":2820,"title":2821,"date":2506,"chapterOrder":2822,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":2824,"stem":2825,"title":2826,"date":2506,"chapterOrder":2827,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","Modules Introduction","2000-2100",{"path":2829,"stem":2830,"title":2831,"date":2506,"chapterOrder":2832,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","Modern C++","2000",{"path":2834,"stem":2835,"title":2836,"date":2506,"chapterOrder":2837,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","Timers and Asynchronous I\u002FO","2100-0100-0100",{"path":2839,"stem":2840,"title":2841,"date":2506,"chapterOrder":2842,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio Basics","2100-0100-0200",{"path":2844,"stem":2845,"title":2846,"date":2506,"chapterOrder":2847,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","serial communication","2100-0100-0300",{"path":2849,"stem":2850,"title":2851,"date":2506,"chapterOrder":2852,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP communication","2100-0100-0400",{"path":2854,"stem":2855,"title":2856,"date":2506,"chapterOrder":2857,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP communication","2100-0100-0500",{"path":2859,"stem":2860,"title":2861,"date":2506,"chapterOrder":2862,"chapterDepth":187,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","Robot Engineering Approach and ROS2 Integration","2100-0100-0600",{"path":2864,"stem":2865,"title":2866,"date":2506,"chapterOrder":2867,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio asynchronous IO library","2100-0100",{"path":2869,"stem":2870,"title":2871,"date":2506,"chapterOrder":2872,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen linear algebra library","2100-0200",{"path":2874,"stem":2875,"title":2876,"date":2506,"chapterOrder":2877,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV Computer Vision Library","2100-0300",{"path":2879,"stem":2880,"title":2881,"date":2506,"chapterOrder":2882,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL Point Cloud Library","2100-0400",{"path":2884,"stem":2885,"title":2886,"date":2506,"chapterOrder":2887,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus Lie group and Lie algebra library","2100-0500",{"path":2889,"stem":2890,"title":2891,"date":2506,"chapterOrder":2892,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","Learning Common Libraries","2100",{"path":2894,"stem":2895,"title":2896,"date":2506,"chapterOrder":2897,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets and Build Installation","2200-0100",{"path":2899,"stem":2900,"title":2901,"date":2506,"chapterOrder":2902,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","Top-level CMake and Public Compilation Options","2200-0200",{"path":2904,"stem":2905,"title":2906,"date":2506,"chapterOrder":2907,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","Detailed CMake Explanation for src and lib Modules","2200-0300",{"path":2909,"stem":2910,"title":2911,"date":2506,"chapterOrder":2912,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","How to write third-party library dependencies","2200-0400",{"path":2914,"stem":2915,"title":2916,"date":2506,"chapterOrder":2917,"chapterDepth":83,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","Template Extensions and FAQ","2200-0500",{"path":2919,"stem":2920,"title":2921,"date":2506,"chapterOrder":2922,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":2513},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake Project Template","2200",{"path":2509,"stem":2924,"title":2925,"date":2506,"chapterOrder":2514,"chapterDepth":2528,"docKey":2508,"docRoot":2509,"docTitle":2510,"isWikiDoc":389,"isWikiIndex":389},"_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++ tutorial",{"variants":2927},[2928,2929,2932,2935,2938],{"path":2504,"localeSlug":2516,"i18nKey":2512},{"path":2930,"localeSlug":2931,"i18nKey":2512},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","zh-hant",{"path":2933,"localeSlug":2934,"i18nKey":2512},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","zh-hk",{"path":2936,"localeSlug":2937,"i18nKey":2512},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","zh-tw",{"path":2939,"localeSlug":2940,"i18nKey":2512},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","zh-cn",[2504,2519,2930,2519,2933,2519,2936,2519,2939,2519],1784646867217]