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