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