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