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