[{"data":1,"prerenderedAt":2441},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array":3,"wiki-doc-items-2023-10-05-cplusplus-jiao-xue":2055},{"id":4,"title":5,"body":6,"chapterDepth":72,"chapterOrder":2043,"date":2044,"description":65,"docKey":2045,"docRoot":2046,"docTitle":2047,"extension":2048,"isWikiDoc":308,"isWikiIndex":2049,"meta":2050,"navigation":308,"path":2051,"seo":2052,"stem":2053,"wikiDepth":72,"__hash__":2054},"wiki\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array.md","std::array",{"type":7,"value":8,"toc":2022},"minimark",[9,13,26,40,43,49,53,56,59,81,87,90,169,174,177,278,281,286,536,542,550,554,794,798,804,808,1234,1238,1244,1246,1249,1252,1350,1354,1364,1442,1456,1460,1719,1723,1729,1739,1742,1747,1784,1788,1797,1802,1844,1849,1857,1862,1925,1929,1939,1942,1990,1993,2018],[10,11,12],"h2",{"id":12},"本节解决什么问题",[14,15,16,17,21,22,25],"p",{},"C 风格数组（",[18,19,20],"code",{},"int arr[5]","）有很多缺点：不能直接赋值、传给函数时会退化成指针丢失大小信息、没有边界检查。而 ",[18,23,24],{},"std::vector"," 虽然功能强大，但它是动态分配内存的，有微小的额外开销。",[14,27,28,30,31,35,36,39],{},[18,29,5],{}," 解决的是：当你需要一个",[32,33,34],"strong",{},"编译期确定大小、栈上分配","的数组时，提供一个和 C 数组一样快、但拥有 STL 容器接口（有 ",[18,37,38],{},"size()","、有迭代器、可赋值）的安全数组。",[10,41,42],{"id":42},"这个特性是什么",[14,44,45,48],{},[18,46,47],{},"std::array\u003CT, N>"," 是 STL 中封装了固定大小数组的容器模板。它大小在编译时确定，不动态分配内存（在栈上），包装了 C 数组同时提供 STL 容器的标准接口。",[10,50,52],{"id":51},"c-标准版本","C++ 标准版本",[14,54,55],{},"C++11",[10,57,58],{"id":58},"需要的头文件",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Carray>\n","cpp","",[18,67,68],{"__ignoreMap":65},[69,70,73,77],"span",{"class":71,"line":72},"line",1,[69,74,76],{"class":75},"szBVR","#include",[69,78,80],{"class":79},"sZZnC"," \u003Carray>\n",[14,82,83,86],{},[32,84,85],{},"运行\u002F观察结果："," 这段是语法或接口示例，重点观察写法；放入完整程序后再运行验证。",[10,88,89],{"id":89},"基本语法",[60,91,93],{"className":62,"code":92,"language":64,"meta":65,"style":65},"std::array\u003C元素类型, 大小> 变量名;            \u002F\u002F 默认初始化（值未定义）\nstd::array\u003C元素类型, 大小> 变量名 = {};        \u002F\u002F 全部初始化为零\nstd::array\u003C元素类型, 大小> 变量名 = {v1, v2, ...}; \u002F\u002F 列表初始化\n",[18,94,95,121,146],{"__ignoreMap":65},[69,96,97,101,105,108,111,114,117],{"class":71,"line":72},[69,98,100],{"class":99},"sScJk","std",[69,102,104],{"class":103},"sVt8B","::array",[69,106,107],{"class":75},"\u003C",[69,109,110],{"class":103},"元素类型, 大小",[69,112,113],{"class":75},">",[69,115,116],{"class":103}," 变量名;",[69,118,120],{"class":119},"sJ8bj","            \u002F\u002F 默认初始化（值未定义）\n",[69,122,124,126,128,130,132,134,137,140,143],{"class":71,"line":123},2,[69,125,100],{"class":99},[69,127,104],{"class":103},[69,129,107],{"class":75},[69,131,110],{"class":103},[69,133,113],{"class":75},[69,135,136],{"class":103}," 变量名 ",[69,138,139],{"class":75},"=",[69,141,142],{"class":103}," {};",[69,144,145],{"class":119},"        \u002F\u002F 全部初始化为零\n",[69,147,149,151,153,155,157,159,161,163,166],{"class":71,"line":148},3,[69,150,100],{"class":99},[69,152,104],{"class":103},[69,154,107],{"class":75},[69,156,110],{"class":103},[69,158,113],{"class":75},[69,160,136],{"class":103},[69,162,139],{"class":75},[69,164,165],{"class":103}," {v1, v2, ...};",[69,167,168],{"class":119}," \u002F\u002F 列表初始化\n",[14,170,171,173],{},[32,172,85],{}," 这段是语法片段，重点看写法；补全上下文后再运行。",[10,175,176],{"id":176},"常用用法",[178,179,180,194],"table",{},[181,182,183],"thead",{},[184,185,186,191],"tr",{},[187,188,190],"th",{"align":189},"left","操作",[187,192,193],{"align":189},"说明",[195,196,197,208,218,228,238,248,258,268],"tbody",{},[184,198,199,205],{},[200,201,202],"td",{"align":189},[18,203,204],{},"a[i]",[200,206,207],{"align":189},"随机访问（不检查越界）",[184,209,210,215],{},[200,211,212],{"align":189},[18,213,214],{},"a.at(i)",[200,216,217],{"align":189},"随机访问（检查越界）",[184,219,220,225],{},[200,221,222],{"align":189},[18,223,224],{},"a.size()",[200,226,227],{"align":189},"返回元素个数（编译期常量）",[184,229,230,235],{},[200,231,232],{"align":189},[18,233,234],{},"a.empty()",[200,236,237],{"align":189},"是否为空（永远为 false）",[184,239,240,245],{},[200,241,242],{"align":189},[18,243,244],{},"a.front()",[200,246,247],{"align":189},"返回第一个元素",[184,249,250,255],{},[200,251,252],{"align":189},[18,253,254],{},"a.back()",[200,256,257],{"align":189},"返回最后一个元素",[184,259,260,265],{},[200,261,262],{"align":189},[18,263,264],{},"a.fill(val)",[200,266,267],{"align":189},"用 val 填充所有元素",[184,269,270,275],{},[200,271,272],{"align":189},[18,273,274],{},"a.data()",[200,276,277],{"align":189},"返回底层 C 数组指针",[10,279,280],{"id":280},"示例代码",[282,283,285],"h3",{"id":284},"示例-1创建-array-并访问元素","示例 1：创建 array 并访问元素",[60,287,289],{"className":62,"code":288,"language":64,"meta":65,"style":65},"#include \u003Ciostream>\n#include \u003Carray>\n\nint main()\n{\n    \u002F\u002F 创建一个包含 5 个 int 的 array，并初始化\n    std::array\u003Cint, 5> arr = {10, 20, 30, 40, 50};\n\n    \u002F\u002F 用下标访问\n    std::cout \u003C\u003C \"arr[0] = \" \u003C\u003C arr[0] \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"arr[4] = \" \u003C\u003C arr[4] \u003C\u003C \"\\n\";\n\n    \u002F\u002F 用 size() 获取大小\n    std::cout \u003C\u003C \"size = \" \u003C\u003C arr.size() \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[18,290,291,298,304,310,322,328,334,388,393,399,439,470,475,481,514,519,530],{"__ignoreMap":65},[69,292,293,295],{"class":71,"line":72},[69,294,76],{"class":75},[69,296,297],{"class":79}," \u003Ciostream>\n",[69,299,300,302],{"class":71,"line":123},[69,301,76],{"class":75},[69,303,80],{"class":79},[69,305,306],{"class":71,"line":148},[69,307,309],{"emptyLinePlaceholder":308},true,"\n",[69,311,313,316,319],{"class":71,"line":312},4,[69,314,315],{"class":75},"int",[69,317,318],{"class":99}," main",[69,320,321],{"class":103},"()\n",[69,323,325],{"class":71,"line":324},5,[69,326,327],{"class":103},"{\n",[69,329,331],{"class":71,"line":330},6,[69,332,333],{"class":119},"    \u002F\u002F 创建一个包含 5 个 int 的 array，并初始化\n",[69,335,337,340,342,345,348,352,354,357,359,362,365,367,370,372,375,377,380,382,385],{"class":71,"line":336},7,[69,338,339],{"class":99},"    std",[69,341,104],{"class":103},[69,343,344],{"class":75},"\u003Cint",[69,346,347],{"class":103},", ",[69,349,351],{"class":350},"sj4cs","5",[69,353,113],{"class":75},[69,355,356],{"class":103}," arr ",[69,358,139],{"class":75},[69,360,361],{"class":103}," {",[69,363,364],{"class":350},"10",[69,366,347],{"class":103},[69,368,369],{"class":350},"20",[69,371,347],{"class":103},[69,373,374],{"class":350},"30",[69,376,347],{"class":103},[69,378,379],{"class":350},"40",[69,381,347],{"class":103},[69,383,384],{"class":350},"50",[69,386,387],{"class":103},"};\n",[69,389,391],{"class":71,"line":390},8,[69,392,309],{"emptyLinePlaceholder":308},[69,394,396],{"class":71,"line":395},9,[69,397,398],{"class":119},"    \u002F\u002F 用下标访问\n",[69,400,402,404,407,410,413,416,419,422,425,427,430,433,436],{"class":71,"line":401},10,[69,403,339],{"class":99},[69,405,406],{"class":103},"::cout ",[69,408,409],{"class":75},"\u003C\u003C",[69,411,412],{"class":79}," \"arr[0] = \"",[69,414,415],{"class":75}," \u003C\u003C",[69,417,418],{"class":103}," arr[",[69,420,421],{"class":350},"0",[69,423,424],{"class":103},"] ",[69,426,409],{"class":75},[69,428,429],{"class":79}," \"",[69,431,432],{"class":350},"\\n",[69,434,435],{"class":79},"\"",[69,437,438],{"class":103},";\n",[69,440,442,444,446,448,451,453,455,458,460,462,464,466,468],{"class":71,"line":441},11,[69,443,339],{"class":99},[69,445,406],{"class":103},[69,447,409],{"class":75},[69,449,450],{"class":79}," \"arr[4] = \"",[69,452,415],{"class":75},[69,454,418],{"class":103},[69,456,457],{"class":350},"4",[69,459,424],{"class":103},[69,461,409],{"class":75},[69,463,429],{"class":79},[69,465,432],{"class":350},[69,467,435],{"class":79},[69,469,438],{"class":103},[69,471,473],{"class":71,"line":472},12,[69,474,309],{"emptyLinePlaceholder":308},[69,476,478],{"class":71,"line":477},13,[69,479,480],{"class":119},"    \u002F\u002F 用 size() 获取大小\n",[69,482,484,486,488,490,493,495,498,501,504,506,508,510,512],{"class":71,"line":483},14,[69,485,339],{"class":99},[69,487,406],{"class":103},[69,489,409],{"class":75},[69,491,492],{"class":79}," \"size = \"",[69,494,415],{"class":75},[69,496,497],{"class":103}," arr.",[69,499,500],{"class":99},"size",[69,502,503],{"class":103},"() ",[69,505,409],{"class":75},[69,507,429],{"class":79},[69,509,432],{"class":350},[69,511,435],{"class":79},[69,513,438],{"class":103},[69,515,517],{"class":71,"line":516},15,[69,518,309],{"emptyLinePlaceholder":308},[69,520,522,525,528],{"class":71,"line":521},16,[69,523,524],{"class":75},"    return",[69,526,527],{"class":350}," 0",[69,529,438],{"class":103},[69,531,533],{"class":71,"line":532},17,[69,534,535],{"class":103},"}\n",[14,537,538,541],{},[32,539,540],{},"运行结果","：",[60,543,548],{"className":544,"code":546,"language":547},[545],"language-text","arr[0] = 10\narr[4] = 50\nsize = 5\n","text",[18,549,546],{"__ignoreMap":65},[282,551,553],{"id":552},"示例-2在示例-1-基础上用-at-安全访问和-fill-填充","示例 2：在示例 1 基础上，用 at() 安全访问和 fill() 填充",[60,555,557],{"className":62,"code":556,"language":64,"meta":65,"style":65},"#include \u003Ciostream>\n#include \u003Carray>\n\nint main()\n{\n    std::array\u003Cint, 5> arr = {10, 20, 30, 40, 50};\n\n    \u002F\u002F 用 at() 安全访问\n    std::cout \u003C\u003C \"arr.at(2) = \" \u003C\u003C arr.at(2) \u003C\u003C \"\\n\";\n\n    \u002F\u002F 用 fill() 将所有元素设为同一个值\n    arr.fill(99);\n\n    std::cout \u003C\u003C \"after fill: \";\n    for (int n : arr)\n    {\n        std::cout \u003C\u003C n \u003C\u003C \" \";\n    }\n    std::cout \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[18,558,559,565,571,575,583,587,627,631,636,673,677,682,698,702,715,728,733,752,758,775,780,789],{"__ignoreMap":65},[69,560,561,563],{"class":71,"line":72},[69,562,76],{"class":75},[69,564,297],{"class":79},[69,566,567,569],{"class":71,"line":123},[69,568,76],{"class":75},[69,570,80],{"class":79},[69,572,573],{"class":71,"line":148},[69,574,309],{"emptyLinePlaceholder":308},[69,576,577,579,581],{"class":71,"line":312},[69,578,315],{"class":75},[69,580,318],{"class":99},[69,582,321],{"class":103},[69,584,585],{"class":71,"line":324},[69,586,327],{"class":103},[69,588,589,591,593,595,597,599,601,603,605,607,609,611,613,615,617,619,621,623,625],{"class":71,"line":330},[69,590,339],{"class":99},[69,592,104],{"class":103},[69,594,344],{"class":75},[69,596,347],{"class":103},[69,598,351],{"class":350},[69,600,113],{"class":75},[69,602,356],{"class":103},[69,604,139],{"class":75},[69,606,361],{"class":103},[69,608,364],{"class":350},[69,610,347],{"class":103},[69,612,369],{"class":350},[69,614,347],{"class":103},[69,616,374],{"class":350},[69,618,347],{"class":103},[69,620,379],{"class":350},[69,622,347],{"class":103},[69,624,384],{"class":350},[69,626,387],{"class":103},[69,628,629],{"class":71,"line":336},[69,630,309],{"emptyLinePlaceholder":308},[69,632,633],{"class":71,"line":390},[69,634,635],{"class":119},"    \u002F\u002F 用 at() 安全访问\n",[69,637,638,640,642,644,647,649,651,654,657,660,663,665,667,669,671],{"class":71,"line":395},[69,639,339],{"class":99},[69,641,406],{"class":103},[69,643,409],{"class":75},[69,645,646],{"class":79}," \"arr.at(2) = \"",[69,648,415],{"class":75},[69,650,497],{"class":103},[69,652,653],{"class":99},"at",[69,655,656],{"class":103},"(",[69,658,659],{"class":350},"2",[69,661,662],{"class":103},") ",[69,664,409],{"class":75},[69,666,429],{"class":79},[69,668,432],{"class":350},[69,670,435],{"class":79},[69,672,438],{"class":103},[69,674,675],{"class":71,"line":401},[69,676,309],{"emptyLinePlaceholder":308},[69,678,679],{"class":71,"line":441},[69,680,681],{"class":119},"    \u002F\u002F 用 fill() 将所有元素设为同一个值\n",[69,683,684,687,690,692,695],{"class":71,"line":472},[69,685,686],{"class":103},"    arr.",[69,688,689],{"class":99},"fill",[69,691,656],{"class":103},[69,693,694],{"class":350},"99",[69,696,697],{"class":103},");\n",[69,699,700],{"class":71,"line":477},[69,701,309],{"emptyLinePlaceholder":308},[69,703,704,706,708,710,713],{"class":71,"line":483},[69,705,339],{"class":99},[69,707,406],{"class":103},[69,709,409],{"class":75},[69,711,712],{"class":79}," \"after fill: \"",[69,714,438],{"class":103},[69,716,717,720,723,725],{"class":71,"line":516},[69,718,719],{"class":75},"    for",[69,721,722],{"class":103}," (",[69,724,315],{"class":75},[69,726,727],{"class":103}," n : arr)\n",[69,729,730],{"class":71,"line":521},[69,731,732],{"class":103},"    {\n",[69,734,735,738,740,742,745,747,750],{"class":71,"line":532},[69,736,737],{"class":99},"        std",[69,739,406],{"class":103},[69,741,409],{"class":75},[69,743,744],{"class":103}," n ",[69,746,409],{"class":75},[69,748,749],{"class":79}," \" \"",[69,751,438],{"class":103},[69,753,755],{"class":71,"line":754},18,[69,756,757],{"class":103},"    }\n",[69,759,761,763,765,767,769,771,773],{"class":71,"line":760},19,[69,762,339],{"class":99},[69,764,406],{"class":103},[69,766,409],{"class":75},[69,768,429],{"class":79},[69,770,432],{"class":350},[69,772,435],{"class":79},[69,774,438],{"class":103},[69,776,778],{"class":71,"line":777},20,[69,779,309],{"emptyLinePlaceholder":308},[69,781,783,785,787],{"class":71,"line":782},21,[69,784,524],{"class":75},[69,786,527],{"class":350},[69,788,438],{"class":103},[69,790,792],{"class":71,"line":791},22,[69,793,535],{"class":103},[14,795,796,541],{},[32,797,540],{},[60,799,802],{"className":800,"code":801,"language":547},[545],"arr.at(2) = 30\nafter fill: 99 99 99 99 99 \n",[18,803,801],{"__ignoreMap":65},[282,805,807],{"id":806},"示例-3在示例-2-基础上对比-c-数组和-stdarray-传递参数","示例 3：在示例 2 基础上，对比 C 数组和 std::array 传递参数",[60,809,811],{"className":62,"code":810,"language":64,"meta":65,"style":65},"#include \u003Ciostream>\n#include \u003Carray>\n\n\u002F\u002F C 风格：数组退化为指针，丢失大小信息\nvoid print_c_array(int* arr, int size)\n{\n    std::cout \u003C\u003C \"C array: \";\n    for (int i = 0; i \u003C size; ++i)\n    {\n        std::cout \u003C\u003C arr[i] \u003C\u003C \" \";\n    }\n    std::cout \u003C\u003C \"\\n\";\n}\n\n\u002F\u002F std::array：大小信息不丢失\nvoid print_std_array(const std::array\u003Cint, 5>& arr)\n{\n    std::cout \u003C\u003C \"std::array: \";\n    for (int n : arr)\n    {\n        std::cout \u003C\u003C n \u003C\u003C \" \";\n    }\n    std::cout \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"size from inside function = \" \u003C\u003C arr.size() \u003C\u003C \"\\n\";\n}\n\nint main()\n{\n    std::array\u003Cint, 5> arr = {1, 2, 3, 4, 5};\n\n    \u002F\u002F C 风格：需要额外传大小\n    print_c_array(arr.data(), arr.size());\n\n    \u002F\u002F std::array：自带大小信息\n    print_std_array(arr);\n\n    return 0;\n}\n",[18,812,813,819,825,829,834,861,865,878,907,911,928,932,948,952,956,961,999,1003,1016,1026,1030,1046,1050,1067,1097,1102,1107,1116,1121,1164,1169,1175,1195,1200,1206,1215,1220,1229],{"__ignoreMap":65},[69,814,815,817],{"class":71,"line":72},[69,816,76],{"class":75},[69,818,297],{"class":79},[69,820,821,823],{"class":71,"line":123},[69,822,76],{"class":75},[69,824,80],{"class":79},[69,826,827],{"class":71,"line":148},[69,828,309],{"emptyLinePlaceholder":308},[69,830,831],{"class":71,"line":312},[69,832,833],{"class":119},"\u002F\u002F C 风格：数组退化为指针，丢失大小信息\n",[69,835,836,839,842,844,847,851,853,855,858],{"class":71,"line":324},[69,837,838],{"class":75},"void",[69,840,841],{"class":99}," print_c_array",[69,843,656],{"class":103},[69,845,846],{"class":75},"int*",[69,848,850],{"class":849},"s4XuR"," arr",[69,852,347],{"class":103},[69,854,315],{"class":75},[69,856,857],{"class":849}," size",[69,859,860],{"class":103},")\n",[69,862,863],{"class":71,"line":330},[69,864,327],{"class":103},[69,866,867,869,871,873,876],{"class":71,"line":336},[69,868,339],{"class":99},[69,870,406],{"class":103},[69,872,409],{"class":75},[69,874,875],{"class":79}," \"C array: \"",[69,877,438],{"class":103},[69,879,880,882,884,886,889,891,893,896,898,901,904],{"class":71,"line":390},[69,881,719],{"class":75},[69,883,722],{"class":103},[69,885,315],{"class":75},[69,887,888],{"class":103}," i ",[69,890,139],{"class":75},[69,892,527],{"class":350},[69,894,895],{"class":103},"; i ",[69,897,107],{"class":75},[69,899,900],{"class":103}," size; ",[69,902,903],{"class":75},"++",[69,905,906],{"class":103},"i)\n",[69,908,909],{"class":71,"line":395},[69,910,732],{"class":103},[69,912,913,915,917,919,922,924,926],{"class":71,"line":401},[69,914,737],{"class":99},[69,916,406],{"class":103},[69,918,409],{"class":75},[69,920,921],{"class":103}," arr[i] ",[69,923,409],{"class":75},[69,925,749],{"class":79},[69,927,438],{"class":103},[69,929,930],{"class":71,"line":441},[69,931,757],{"class":103},[69,933,934,936,938,940,942,944,946],{"class":71,"line":472},[69,935,339],{"class":99},[69,937,406],{"class":103},[69,939,409],{"class":75},[69,941,429],{"class":79},[69,943,432],{"class":350},[69,945,435],{"class":79},[69,947,438],{"class":103},[69,949,950],{"class":71,"line":477},[69,951,535],{"class":103},[69,953,954],{"class":71,"line":483},[69,955,309],{"emptyLinePlaceholder":308},[69,957,958],{"class":71,"line":516},[69,959,960],{"class":119},"\u002F\u002F std::array：大小信息不丢失\n",[69,962,963,965,968,970,973,976,979,982,984,986,988,990,992,995,997],{"class":71,"line":521},[69,964,838],{"class":75},[69,966,967],{"class":99}," print_std_array",[69,969,656],{"class":103},[69,971,972],{"class":75},"const",[69,974,975],{"class":99}," std",[69,977,978],{"class":103},"::",[69,980,981],{"class":99},"array",[69,983,107],{"class":103},[69,985,315],{"class":75},[69,987,347],{"class":103},[69,989,351],{"class":350},[69,991,113],{"class":103},[69,993,994],{"class":75},"&",[69,996,850],{"class":849},[69,998,860],{"class":103},[69,1000,1001],{"class":71,"line":532},[69,1002,327],{"class":103},[69,1004,1005,1007,1009,1011,1014],{"class":71,"line":754},[69,1006,339],{"class":99},[69,1008,406],{"class":103},[69,1010,409],{"class":75},[69,1012,1013],{"class":79}," \"std::array: \"",[69,1015,438],{"class":103},[69,1017,1018,1020,1022,1024],{"class":71,"line":760},[69,1019,719],{"class":75},[69,1021,722],{"class":103},[69,1023,315],{"class":75},[69,1025,727],{"class":103},[69,1027,1028],{"class":71,"line":777},[69,1029,732],{"class":103},[69,1031,1032,1034,1036,1038,1040,1042,1044],{"class":71,"line":782},[69,1033,737],{"class":99},[69,1035,406],{"class":103},[69,1037,409],{"class":75},[69,1039,744],{"class":103},[69,1041,409],{"class":75},[69,1043,749],{"class":79},[69,1045,438],{"class":103},[69,1047,1048],{"class":71,"line":791},[69,1049,757],{"class":103},[69,1051,1053,1055,1057,1059,1061,1063,1065],{"class":71,"line":1052},23,[69,1054,339],{"class":99},[69,1056,406],{"class":103},[69,1058,409],{"class":75},[69,1060,429],{"class":79},[69,1062,432],{"class":350},[69,1064,435],{"class":79},[69,1066,438],{"class":103},[69,1068,1070,1072,1074,1076,1079,1081,1083,1085,1087,1089,1091,1093,1095],{"class":71,"line":1069},24,[69,1071,339],{"class":99},[69,1073,406],{"class":103},[69,1075,409],{"class":75},[69,1077,1078],{"class":79}," \"size from inside function = \"",[69,1080,415],{"class":75},[69,1082,497],{"class":103},[69,1084,500],{"class":99},[69,1086,503],{"class":103},[69,1088,409],{"class":75},[69,1090,429],{"class":79},[69,1092,432],{"class":350},[69,1094,435],{"class":79},[69,1096,438],{"class":103},[69,1098,1100],{"class":71,"line":1099},25,[69,1101,535],{"class":103},[69,1103,1105],{"class":71,"line":1104},26,[69,1106,309],{"emptyLinePlaceholder":308},[69,1108,1110,1112,1114],{"class":71,"line":1109},27,[69,1111,315],{"class":75},[69,1113,318],{"class":99},[69,1115,321],{"class":103},[69,1117,1119],{"class":71,"line":1118},28,[69,1120,327],{"class":103},[69,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1145,1147,1149,1151,1154,1156,1158,1160,1162],{"class":71,"line":1123},29,[69,1125,339],{"class":99},[69,1127,104],{"class":103},[69,1129,344],{"class":75},[69,1131,347],{"class":103},[69,1133,351],{"class":350},[69,1135,113],{"class":75},[69,1137,356],{"class":103},[69,1139,139],{"class":75},[69,1141,361],{"class":103},[69,1143,1144],{"class":350},"1",[69,1146,347],{"class":103},[69,1148,659],{"class":350},[69,1150,347],{"class":103},[69,1152,1153],{"class":350},"3",[69,1155,347],{"class":103},[69,1157,457],{"class":350},[69,1159,347],{"class":103},[69,1161,351],{"class":350},[69,1163,387],{"class":103},[69,1165,1167],{"class":71,"line":1166},30,[69,1168,309],{"emptyLinePlaceholder":308},[69,1170,1172],{"class":71,"line":1171},31,[69,1173,1174],{"class":119},"    \u002F\u002F C 风格：需要额外传大小\n",[69,1176,1178,1181,1184,1187,1190,1192],{"class":71,"line":1177},32,[69,1179,1180],{"class":99},"    print_c_array",[69,1182,1183],{"class":103},"(arr.",[69,1185,1186],{"class":99},"data",[69,1188,1189],{"class":103},"(), arr.",[69,1191,500],{"class":99},[69,1193,1194],{"class":103},"());\n",[69,1196,1198],{"class":71,"line":1197},33,[69,1199,309],{"emptyLinePlaceholder":308},[69,1201,1203],{"class":71,"line":1202},34,[69,1204,1205],{"class":119},"    \u002F\u002F std::array：自带大小信息\n",[69,1207,1209,1212],{"class":71,"line":1208},35,[69,1210,1211],{"class":99},"    print_std_array",[69,1213,1214],{"class":103},"(arr);\n",[69,1216,1218],{"class":71,"line":1217},36,[69,1219,309],{"emptyLinePlaceholder":308},[69,1221,1223,1225,1227],{"class":71,"line":1222},37,[69,1224,524],{"class":75},[69,1226,527],{"class":350},[69,1228,438],{"class":103},[69,1230,1232],{"class":71,"line":1231},38,[69,1233,535],{"class":103},[14,1235,1236,541],{},[32,1237,540],{},[60,1239,1242],{"className":1240,"code":1241,"language":547},[545],"C array: 1 2 3 4 5 \nstd::array: 1 2 3 4 5 \nsize from inside function = 5\n",[18,1243,1241],{"__ignoreMap":65},[10,1245,540],{"id":540},[14,1247,1248],{},"见上方每个示例的\"运行结果\"。",[10,1250,1251],{"id":1251},"示例中的关键语法解释",[178,1253,1254,1273],{},[181,1255,1256],{},[184,1257,1258,1261,1264,1267,1270],{},[187,1259,1260],{"align":189},"示例",[187,1262,1263],{"align":189},"讲了什么",[187,1265,1266],{"align":189},"新出现的语法",[187,1268,1269],{"align":189},"为什么这样写",[187,1271,1272],{"align":189},"注意事项",[195,1274,1275,1299,1328],{},[184,1276,1277,1280,1283,1290,1296],{},[200,1278,1279],{"align":189},"示例 1",[200,1281,1282],{"align":189},"创建 array 和基本访问",[200,1284,1285,1287,1288],{"align":189},[18,1286,47],{},"、",[18,1289,38],{},[200,1291,1292,1293,1295],{"align":189},"array 大小是编译期常量，",[18,1294,38],{}," 返回固定值",[200,1297,1298],{"align":189},"大小必须是编译期常量，不能传变量",[184,1300,1301,1304,1307,1315,1323],{},[200,1302,1303],{"align":189},"示例 2",[200,1305,1306],{"align":189},"at() 安全访问和 fill() 填充",[200,1308,1309,1287,1312],{"align":189},[18,1310,1311],{},"at()",[18,1313,1314],{},"fill()",[200,1316,1317,1319,1320,1322],{"align":189},[18,1318,1311],{}," 越界会抛异常；",[18,1321,1314],{}," 方便批量赋值",[200,1324,1325,1327],{"align":189},[18,1326,1314],{}," 对所有元素赋相同值",[184,1329,1330,1333,1336,1344,1347],{},[200,1331,1332],{"align":189},"示例 3",[200,1334,1335],{"align":189},"对比 C 数组和 array 传参",[200,1337,1338,1287,1341],{"align":189},[18,1339,1340],{},"data()",[18,1342,1343],{},"const std::array\u003Cint,5>&",[200,1345,1346],{"align":189},"array 传参时大小信息不丢失",[200,1348,1349],{"align":189},"array 大小是类型的一部分，不同大小是不同的类型",[10,1351,1353],{"id":1352},"array-和-vector-的区别什么时候明显","array 和 vector 的区别什么时候明显",[14,1355,1356,1357,1359,1360,1363],{},"如果只是存 5 个整数，",[18,1358,981],{}," 和 ",[18,1361,1362],{},"vector"," 看起来都能用。但放到工程里，差异主要体现在“大小是否固定”和“是否需要动态扩容”：",[178,1365,1366,1379],{},[181,1367,1368],{},[184,1369,1370,1373,1376],{},[187,1371,1372],{"align":189},"场景",[187,1374,1375],{"align":189},"推荐",[187,1377,1378],{"align":189},"原因",[195,1380,1381,1397,1412,1425],{},[184,1382,1383,1389,1394],{},[200,1384,1385,1386],{"align":189},"三轴 IMU 数据 ",[18,1387,1388],{},"{x, y, z}",[200,1390,1391],{"align":189},[18,1392,1393],{},"std::array\u003Cdouble, 3>",[200,1395,1396],{"align":189},"大小永远是 3，不需要扩容",[184,1398,1399,1405,1409],{},[200,1400,1401,1402],{"align":189},"固定长度 PID 参数 ",[18,1403,1404],{},"{kp, ki, kd}",[200,1406,1407],{"align":189},[18,1408,1393],{},[200,1410,1411],{"align":189},"编译期就知道大小，语义明确",[184,1413,1414,1417,1422],{},[200,1415,1416],{"align":189},"运行时读取一批传感器点",[200,1418,1419],{"align":189},[18,1420,1421],{},"std::vector\u003CPoint>",[200,1423,1424],{"align":189},"点的数量运行时才知道",[184,1426,1427,1430,1435],{},[200,1428,1429],{"align":189},"用户输入任意数量数据",[200,1431,1432],{"align":189},[18,1433,1434],{},"std::vector\u003CT>",[200,1436,1437,1438,1441],{"align":189},"需要 ",[18,1439,1440],{},"push_back"," 动态增长",[14,1443,1444,1446,1447,1449,1450,1452,1453,1455],{},[18,1445,981],{}," 更像“有 STL 接口的固定数组”，",[18,1448,1362],{}," 更像“会变长的数组”。不要因为 ",[18,1451,981],{}," 更轻量就到处用它：只要元素个数运行时才知道，就应该用 ",[18,1454,1362],{},"。",[282,1457,1459],{"id":1458},"示例-4固定三轴数据更适合-array","示例 4：固定三轴数据更适合 array",[60,1461,1463],{"className":62,"code":1462,"language":64,"meta":65,"style":65},"#include \u003Carray>\n#include \u003Ciostream>\n\n\u002F\u002F std::array 是固定长度数组，长度在编译期就确定。\ndouble norm3(const std::array\u003Cdouble, 3>& v)\n{\n    return v[0] * v[0] + v[1] * v[1] + v[2] * v[2];\n}\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    std::array\u003Cdouble, 3> accel = {0.1, 0.2, 9.8};\n\n    std::cout \u003C\u003C \"accel size = \" \u003C\u003C accel.size() \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"squared norm = \" \u003C\u003C norm3(accel) \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[18,1464,1465,1471,1477,1481,1486,1521,1525,1579,1583,1587,1595,1599,1604,1641,1645,1675,1703,1707,1715],{"__ignoreMap":65},[69,1466,1467,1469],{"class":71,"line":72},[69,1468,76],{"class":75},[69,1470,80],{"class":79},[69,1472,1473,1475],{"class":71,"line":123},[69,1474,76],{"class":75},[69,1476,297],{"class":79},[69,1478,1479],{"class":71,"line":148},[69,1480,309],{"emptyLinePlaceholder":308},[69,1482,1483],{"class":71,"line":312},[69,1484,1485],{"class":119},"\u002F\u002F std::array 是固定长度数组，长度在编译期就确定。\n",[69,1487,1488,1491,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1519],{"class":71,"line":324},[69,1489,1490],{"class":75},"double",[69,1492,1493],{"class":99}," norm3",[69,1495,656],{"class":103},[69,1497,972],{"class":75},[69,1499,975],{"class":99},[69,1501,978],{"class":103},[69,1503,981],{"class":99},[69,1505,107],{"class":103},[69,1507,1490],{"class":75},[69,1509,347],{"class":103},[69,1511,1153],{"class":350},[69,1513,113],{"class":103},[69,1515,994],{"class":75},[69,1517,1518],{"class":849}," v",[69,1520,860],{"class":103},[69,1522,1523],{"class":71,"line":330},[69,1524,327],{"class":103},[69,1526,1527,1529,1532,1534,1536,1539,1541,1543,1545,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576],{"class":71,"line":336},[69,1528,524],{"class":75},[69,1530,1531],{"class":103}," v[",[69,1533,421],{"class":350},[69,1535,424],{"class":103},[69,1537,1538],{"class":75},"*",[69,1540,1531],{"class":103},[69,1542,421],{"class":350},[69,1544,424],{"class":103},[69,1546,1547],{"class":75},"+",[69,1549,1531],{"class":103},[69,1551,1144],{"class":350},[69,1553,424],{"class":103},[69,1555,1538],{"class":75},[69,1557,1531],{"class":103},[69,1559,1144],{"class":350},[69,1561,424],{"class":103},[69,1563,1547],{"class":75},[69,1565,1531],{"class":103},[69,1567,659],{"class":350},[69,1569,424],{"class":103},[69,1571,1538],{"class":75},[69,1573,1531],{"class":103},[69,1575,659],{"class":350},[69,1577,1578],{"class":103},"];\n",[69,1580,1581],{"class":71,"line":390},[69,1582,535],{"class":103},[69,1584,1585],{"class":71,"line":395},[69,1586,309],{"emptyLinePlaceholder":308},[69,1588,1589,1591,1593],{"class":71,"line":401},[69,1590,315],{"class":75},[69,1592,318],{"class":99},[69,1594,321],{"class":103},[69,1596,1597],{"class":71,"line":441},[69,1598,327],{"class":103},[69,1600,1601],{"class":71,"line":472},[69,1602,1603],{"class":119},"    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[69,1605,1606,1608,1610,1613,1615,1617,1619,1622,1624,1626,1629,1631,1634,1636,1639],{"class":71,"line":477},[69,1607,339],{"class":99},[69,1609,104],{"class":103},[69,1611,1612],{"class":75},"\u003Cdouble",[69,1614,347],{"class":103},[69,1616,1153],{"class":350},[69,1618,113],{"class":75},[69,1620,1621],{"class":103}," accel ",[69,1623,139],{"class":75},[69,1625,361],{"class":103},[69,1627,1628],{"class":350},"0.1",[69,1630,347],{"class":103},[69,1632,1633],{"class":350},"0.2",[69,1635,347],{"class":103},[69,1637,1638],{"class":350},"9.8",[69,1640,387],{"class":103},[69,1642,1643],{"class":71,"line":483},[69,1644,309],{"emptyLinePlaceholder":308},[69,1646,1647,1649,1651,1653,1656,1658,1661,1663,1665,1667,1669,1671,1673],{"class":71,"line":516},[69,1648,339],{"class":99},[69,1650,406],{"class":103},[69,1652,409],{"class":75},[69,1654,1655],{"class":79}," \"accel size = \"",[69,1657,415],{"class":75},[69,1659,1660],{"class":103}," accel.",[69,1662,500],{"class":99},[69,1664,503],{"class":103},[69,1666,409],{"class":75},[69,1668,429],{"class":79},[69,1670,432],{"class":350},[69,1672,435],{"class":79},[69,1674,438],{"class":103},[69,1676,1677,1679,1681,1683,1686,1688,1690,1693,1695,1697,1699,1701],{"class":71,"line":521},[69,1678,339],{"class":99},[69,1680,406],{"class":103},[69,1682,409],{"class":75},[69,1684,1685],{"class":79}," \"squared norm = \"",[69,1687,415],{"class":75},[69,1689,1493],{"class":99},[69,1691,1692],{"class":103},"(accel) ",[69,1694,409],{"class":75},[69,1696,429],{"class":79},[69,1698,432],{"class":350},[69,1700,435],{"class":79},[69,1702,438],{"class":103},[69,1704,1705],{"class":71,"line":532},[69,1706,309],{"emptyLinePlaceholder":308},[69,1708,1709,1711,1713],{"class":71,"line":754},[69,1710,524],{"class":75},[69,1712,527],{"class":350},[69,1714,438],{"class":103},[69,1716,1717],{"class":71,"line":760},[69,1718,535],{"class":103},[14,1720,1721,541],{},[32,1722,540],{},[60,1724,1727],{"className":1725,"code":1726,"language":547},[545],"accel size = 3\nsquared norm = 96.09\n",[18,1728,1726],{"__ignoreMap":65},[14,1730,1731,1732,1734,1735,1738],{},"这个例子中，三轴数据必须正好是 3 个值。用 ",[18,1733,1393],{}," 可以把这个约束写进类型里；如果误传 ",[18,1736,1737],{},"std::array\u003Cdouble, 2>","，编译期就会报错。",[10,1740,1741],{"id":1741},"常见错误",[14,1743,1744],{},[32,1745,1746],{},"错误 1：用变量指定 array 大小",[60,1748,1750],{"className":62,"code":1749,"language":64,"meta":65,"style":65},"int n = 5;\nstd::array\u003Cint, n> arr;  \u002F\u002F ❌ 编译错误！n 必须是编译期常量\n",[18,1751,1752,1765],{"__ignoreMap":65},[69,1753,1754,1756,1758,1760,1763],{"class":71,"line":72},[69,1755,315],{"class":75},[69,1757,744],{"class":103},[69,1759,139],{"class":75},[69,1761,1762],{"class":350}," 5",[69,1764,438],{"class":103},[69,1766,1767,1769,1771,1773,1776,1778,1781],{"class":71,"line":123},[69,1768,100],{"class":99},[69,1770,104],{"class":103},[69,1772,344],{"class":75},[69,1774,1775],{"class":103},", n",[69,1777,113],{"class":75},[69,1779,1780],{"class":103}," arr;",[69,1782,1783],{"class":119},"  \u002F\u002F ❌ 编译错误！n 必须是编译期常量\n",[14,1785,1786,86],{},[32,1787,85],{},[14,1789,1790,1791,1794,1795,1455],{},"正确做法：用 ",[18,1792,1793],{},"constexpr"," 常量，或者改用 ",[18,1796,24],{},[14,1798,1799],{},[32,1800,1801],{},"错误 2：忘记初始化就访问",[60,1803,1805],{"className":62,"code":1804,"language":64,"meta":65,"style":65},"std::array\u003Cint, 5> arr;   \u002F\u002F 值未定义（栈上的垃圾值）\nstd::cout \u003C\u003C arr[0];      \u002F\u002F ❌ 未定义行为\n",[18,1806,1807,1826],{"__ignoreMap":65},[69,1808,1809,1811,1813,1815,1817,1819,1821,1823],{"class":71,"line":72},[69,1810,100],{"class":99},[69,1812,104],{"class":103},[69,1814,344],{"class":75},[69,1816,347],{"class":103},[69,1818,351],{"class":350},[69,1820,113],{"class":75},[69,1822,1780],{"class":103},[69,1824,1825],{"class":119},"   \u002F\u002F 值未定义（栈上的垃圾值）\n",[69,1827,1828,1830,1832,1834,1836,1838,1841],{"class":71,"line":123},[69,1829,100],{"class":99},[69,1831,406],{"class":103},[69,1833,409],{"class":75},[69,1835,418],{"class":103},[69,1837,421],{"class":350},[69,1839,1840],{"class":103},"];",[69,1842,1843],{"class":119},"      \u002F\u002F ❌ 未定义行为\n",[14,1845,1846,1848],{},[32,1847,85],{}," 运行后会按输出语句打印对应内容，变量值可结合初始化、赋值和函数调用顺序推导。",[14,1850,1790,1851,1854,1855,1455],{},[18,1852,1853],{},"{}"," 初始化或 ",[18,1856,1314],{},[14,1858,1859],{},[32,1860,1861],{},"错误 3：不同大小的 array 互相赋值",[60,1863,1865],{"className":62,"code":1864,"language":64,"meta":65,"style":65},"std::array\u003Cint, 3> a = {1, 2, 3};\nstd::array\u003Cint, 5> b = a;  \u002F\u002F ❌ 编译错误！类型不同\n",[18,1866,1867,1900],{"__ignoreMap":65},[69,1868,1869,1871,1873,1875,1877,1879,1881,1884,1886,1888,1890,1892,1894,1896,1898],{"class":71,"line":72},[69,1870,100],{"class":99},[69,1872,104],{"class":103},[69,1874,344],{"class":75},[69,1876,347],{"class":103},[69,1878,1153],{"class":350},[69,1880,113],{"class":75},[69,1882,1883],{"class":103}," a ",[69,1885,139],{"class":75},[69,1887,361],{"class":103},[69,1889,1144],{"class":350},[69,1891,347],{"class":103},[69,1893,659],{"class":350},[69,1895,347],{"class":103},[69,1897,1153],{"class":350},[69,1899,387],{"class":103},[69,1901,1902,1904,1906,1908,1910,1912,1914,1917,1919,1922],{"class":71,"line":123},[69,1903,100],{"class":99},[69,1905,104],{"class":103},[69,1907,344],{"class":75},[69,1909,347],{"class":103},[69,1911,351],{"class":350},[69,1913,113],{"class":75},[69,1915,1916],{"class":103}," b ",[69,1918,139],{"class":75},[69,1920,1921],{"class":103}," a;",[69,1923,1924],{"class":119},"  \u002F\u002F ❌ 编译错误！类型不同\n",[14,1926,1927,86],{},[32,1928,85],{},[14,1930,1931,1932,1359,1935,1938],{},"正确做法：",[18,1933,1934],{},"std::array\u003Cint,3>",[18,1936,1937],{},"std::array\u003Cint,5>"," 是不同的类型，不能互相赋值。",[10,1940,1941],{"id":1941},"使用建议",[1943,1944,1945,1958,1970,1978],"ol",{},[1946,1947,1948,1951,1952,1954,1955,1957],"li",{},[32,1949,1950],{},"编译期确定大小用 array","：如果大小在编译时就已知，用 ",[18,1953,5],{}," 比 ",[18,1956,24],{}," 更轻量（无堆分配）。",[1946,1959,1960,1963,1964,1966,1967,1455],{},[32,1961,1962],{},"代替 C 数组","：能用 ",[18,1965,5],{}," 的地方就不要用 ",[18,1968,1969],{},"int arr[N]",[1946,1971,1972,541,1975,1977],{},[32,1973,1974],{},"传参注意大小",[18,1976,47],{}," 的大小是类型的一部分，函数签名要指定 N。",[1946,1979,1980,1983,1984,1986,1987,1989],{},[32,1981,1982],{},"可赋值","：和 C 数组不同，",[18,1985,5],{}," 能用 ",[18,1988,139],{}," 整体赋值（相同类型）。",[10,1991,1992],{"id":1992},"小结",[1994,1995,1996,2001,2009,2012],"ul",{},[1946,1997,1998,2000],{},[18,1999,47],{}," 封装了固定大小的数组，大小在编译期确定。",[1946,2002,2003,2004,1287,2006,2008],{},"拥有 STL 容器的标准接口（",[18,2005,38],{},[18,2007,1311],{},"、迭代器等）。",[1946,2010,2011],{},"可以整体赋值，传给函数时不会退化为指针，大小信息不丢失。",[1946,2013,2014,2015,2017],{},"适用于编译期已知大小的场景，比 ",[18,2016,1362],{}," 更轻量。",[2019,2020,2021],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":65,"searchDepth":123,"depth":123,"links":2023},[2024,2025,2026,2027,2028,2029,2030,2035,2036,2037,2040,2041,2042],{"id":12,"depth":123,"text":12},{"id":42,"depth":123,"text":42},{"id":51,"depth":123,"text":52},{"id":58,"depth":123,"text":58},{"id":89,"depth":123,"text":89},{"id":176,"depth":123,"text":176},{"id":280,"depth":123,"text":280,"children":2031},[2032,2033,2034],{"id":284,"depth":148,"text":285},{"id":552,"depth":148,"text":553},{"id":806,"depth":148,"text":807},{"id":540,"depth":123,"text":540},{"id":1251,"depth":123,"text":1251},{"id":1352,"depth":123,"text":1353,"children":2038},[2039],{"id":1458,"depth":148,"text":1459},{"id":1741,"depth":123,"text":1741},{"id":1941,"depth":123,"text":1941},{"id":1992,"depth":123,"text":1992},"1800-0200","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\u002F1800-0200-std-array",{"title":5,"description":65},"wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","bW51r8Eh5XT1iINmcIEAjQQo7MqRXd9_ZzRgi6jeD6g",[2056,2062,2067,2072,2077,2082,2087,2092,2097,2102,2107,2112,2117,2122,2127,2132,2137,2142,2147,2152,2157,2162,2167,2172,2177,2178,2183,2188,2193,2198,2203,2208,2213,2218,2223,2228,2233,2238,2243,2248,2252,2257,2262,2267,2272,2277,2282,2287,2292,2297,2302,2307,2312,2317,2322,2327,2332,2337,2342,2347,2352,2357,2362,2367,2372,2377,2382,2387,2392,2397,2402,2407,2412,2417,2422,2427,2432,2437],{"path":2057,"stem":2058,"title":2059,"date":2044,"chapterOrder":2060,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2063,"stem":2064,"title":2065,"date":2044,"chapterOrder":2066,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++基础初识","0200",{"path":2068,"stem":2069,"title":2070,"date":2044,"chapterOrder":2071,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2073,"stem":2074,"title":2075,"date":2044,"chapterOrder":2076,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","wiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","输入输出","0400",{"path":2078,"stem":2079,"title":2080,"date":2044,"chapterOrder":2081,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","wiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","运算符","0500",{"path":2083,"stem":2084,"title":2085,"date":2044,"chapterOrder":2086,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","wiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","程序流程结构","0600",{"path":2088,"stem":2089,"title":2090,"date":2044,"chapterOrder":2091,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","wiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","数组","0700",{"path":2093,"stem":2094,"title":2095,"date":2044,"chapterOrder":2096,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","wiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","函数与头文件","0800",{"path":2098,"stem":2099,"title":2100,"date":2044,"chapterOrder":2101,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","指针","0900",{"path":2103,"stem":2104,"title":2105,"date":2044,"chapterOrder":2106,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","wiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","结构体与共用体","1000",{"path":2108,"stem":2109,"title":2110,"date":2044,"chapterOrder":2111,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2113,"stem":2114,"title":2115,"date":2044,"chapterOrder":2116,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","wiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","引用","1200",{"path":2118,"stem":2119,"title":2120,"date":2044,"chapterOrder":2121,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2123,"stem":2124,"title":2125,"date":2044,"chapterOrder":2126,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","封装","1400-0100",{"path":2128,"stem":2129,"title":2130,"date":2044,"chapterOrder":2131,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2133,"stem":2134,"title":2135,"date":2044,"chapterOrder":2136,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2138,"stem":2139,"title":2140,"date":2044,"chapterOrder":2141,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2143,"stem":2144,"title":2145,"date":2044,"chapterOrder":2146,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","继承","1400-0500",{"path":2148,"stem":2149,"title":2150,"date":2044,"chapterOrder":2151,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","多态","1400-0600",{"path":2153,"stem":2154,"title":2155,"date":2044,"chapterOrder":2156,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","类和对象","1400",{"path":2158,"stem":2159,"title":2160,"date":2044,"chapterOrder":2161,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","wiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","文件操作","1500",{"path":2163,"stem":2164,"title":2165,"date":2044,"chapterOrder":2166,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","wiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理","1600",{"path":2168,"stem":2169,"title":2170,"date":2044,"chapterOrder":2171,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","wiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","模板","1700",{"path":2173,"stem":2174,"title":2175,"date":2044,"chapterOrder":2176,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","STL初识","1800-0100",{"path":2051,"stem":2053,"title":5,"date":2044,"chapterOrder":2043,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},{"path":2179,"stem":2180,"title":2181,"date":2044,"chapterOrder":2182,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string容器","1800-0300",{"path":2184,"stem":2185,"title":2186,"date":2044,"chapterOrder":2187,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2189,"stem":2190,"title":2191,"date":2044,"chapterOrder":2192,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2194,"stem":2195,"title":2196,"date":2044,"chapterOrder":2197,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2199,"stem":2200,"title":2201,"date":2044,"chapterOrder":2202,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2204,"stem":2205,"title":2206,"date":2044,"chapterOrder":2207,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-chang-yong-suan-fa","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-常用算法","常用算法","1800-0800",{"path":2209,"stem":2210,"title":2211,"date":2044,"chapterOrder":2212,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","STL提高编程","1800",{"path":2214,"stem":2215,"title":2216,"date":2044,"chapterOrder":2217,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","wiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++类型转换","1900",{"path":2219,"stem":2220,"title":2221,"date":2044,"chapterOrder":2222,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":2224,"stem":2225,"title":2226,"date":2044,"chapterOrder":2227,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":2229,"stem":2230,"title":2231,"date":2044,"chapterOrder":2232,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":2234,"stem":2235,"title":2236,"date":2044,"chapterOrder":2237,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2239,"stem":2240,"title":2241,"date":2044,"chapterOrder":2242,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2244,"stem":2245,"title":2246,"date":2044,"chapterOrder":2247,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","结构化绑定","2000-0600",{"path":2249,"stem":2250,"title":1793,"date":2044,"chapterOrder":2251,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","2000-0700",{"path":2253,"stem":2254,"title":2255,"date":2044,"chapterOrder":2256,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":2258,"stem":2259,"title":2260,"date":2044,"chapterOrder":2261,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","智能指针","2000-0900",{"path":2263,"stem":2264,"title":2265,"date":2044,"chapterOrder":2266,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2268,"stem":2269,"title":2270,"date":2044,"chapterOrder":2271,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2273,"stem":2274,"title":2275,"date":2044,"chapterOrder":2276,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2278,"stem":2279,"title":2280,"date":2044,"chapterOrder":2281,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2283,"stem":2284,"title":2285,"date":2044,"chapterOrder":2286,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2288,"stem":2289,"title":2290,"date":2044,"chapterOrder":2291,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2293,"stem":2294,"title":2295,"date":2044,"chapterOrder":2296,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2298,"stem":2299,"title":2300,"date":2044,"chapterOrder":2301,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2303,"stem":2304,"title":2305,"date":2044,"chapterOrder":2306,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2308,"stem":2309,"title":2310,"date":2044,"chapterOrder":2311,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2313,"stem":2314,"title":2315,"date":2044,"chapterOrder":2316,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2318,"stem":2319,"title":2320,"date":2044,"chapterOrder":2321,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2323,"stem":2324,"title":2325,"date":2044,"chapterOrder":2326,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2328,"stem":2329,"title":2330,"date":2044,"chapterOrder":2331,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","并发编程","2000-1900",{"path":2333,"stem":2334,"title":2335,"date":2044,"chapterOrder":2336,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2338,"stem":2339,"title":2340,"date":2044,"chapterOrder":2341,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","modules 简介","2000-2100",{"path":2343,"stem":2344,"title":2345,"date":2044,"chapterOrder":2346,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","现代C++","2000",{"path":2348,"stem":2349,"title":2350,"date":2044,"chapterOrder":2351,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2353,"stem":2354,"title":2355,"date":2044,"chapterOrder":2356,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2358,"stem":2359,"title":2360,"date":2044,"chapterOrder":2361,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2363,"stem":2364,"title":2365,"date":2044,"chapterOrder":2366,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2368,"stem":2369,"title":2370,"date":2044,"chapterOrder":2371,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2373,"stem":2374,"title":2375,"date":2044,"chapterOrder":2376,"chapterDepth":123,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2378,"stem":2379,"title":2380,"date":2044,"chapterOrder":2381,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2383,"stem":2384,"title":2385,"date":2044,"chapterOrder":2386,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2388,"stem":2389,"title":2390,"date":2044,"chapterOrder":2391,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2393,"stem":2394,"title":2395,"date":2044,"chapterOrder":2396,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2398,"stem":2399,"title":2400,"date":2044,"chapterOrder":2401,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2403,"stem":2404,"title":2405,"date":2044,"chapterOrder":2406,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","常用库学习","2100",{"path":2408,"stem":2409,"title":2410,"date":2044,"chapterOrder":2411,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2413,"stem":2414,"title":2415,"date":2044,"chapterOrder":2416,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2418,"stem":2419,"title":2420,"date":2044,"chapterOrder":2421,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2423,"stem":2424,"title":2425,"date":2044,"chapterOrder":2426,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2428,"stem":2429,"title":2430,"date":2044,"chapterOrder":2431,"chapterDepth":72,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\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":2433,"stem":2434,"title":2435,"date":2044,"chapterOrder":2436,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":2049},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake工程模板","2200",{"path":2046,"stem":2438,"title":2439,"date":2044,"chapterOrder":2440,"chapterDepth":2061,"docKey":2045,"docRoot":2046,"docTitle":2047,"isWikiDoc":308,"isWikiIndex":308},"wiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++教程",null,1784505233554]