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