[{"data":1,"prerenderedAt":1995},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong":1565,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong":1979,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong":1994},{"id":4,"title":5,"body":6,"canonicalPath":1547,"chapter":1548,"chapterSort":1549,"date":1550,"description":42,"docI18nKey":1551,"docKey":1552,"docRoot":1553,"docTitle":1554,"extension":1555,"i18nKey":1556,"isBlogPost":1557,"isWikiDoc":74,"isWikiIndex":1557,"layout":1558,"legacyPath":1559,"locale":1560,"localeSlug":1561,"meta":1562,"navigation":74,"path":1547,"seo":1563,"sourcePath":1559,"sourceStem":1556,"stem":1556,"wikiDepth":49,"__hash__":1564},"content/wiki/2023-10-05-Cplusplus教学/ch11-引用.md","引用",{"type":7,"value":8,"toc":1537},"minimark",[9,12,16,20,31,36,248,254,257,267,269,423,427,430,433,436,440,846,850,856,859,862,868,871,875,1163,1168,1171,1174,1180,1183,1344,1348,1351,1354,1357,1360,1364,1529,1533],[10,11,5],"h2",{"id":5},[13,14,15],"h3",{"id":15},"引用的基本使用",[17,18,19],"p",{},"**作用： **给变量起别名",[17,21,22,26,27],{},[23,24,25],"strong",{},"语法："," ",[28,29,30],"code",{},"数据类型 &别名 = 原名",[17,32,33],{},[23,34,35],{},"示例：",[37,38,43],"pre",{"className":39,"code":40,"language":41,"meta":42,"style":42},"language-cpp shiki shiki-themes github-light github-dark","int main() {\n    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n\n    int a = 10;\n    int &b = a;\n\n    cout \u003C\u003C \"a = \" \u003C\u003C a \u003C\u003C endl;\n    cout \u003C\u003C \"b = \" \u003C\u003C b \u003C\u003C endl;\n\n    b = 100;\n\n    cout \u003C\u003C \"a = \" \u003C\u003C a \u003C\u003C endl;\n    cout \u003C\u003C \"b = \" \u003C\u003C b \u003C\u003C endl;\n\n\n    // 返回 0 表示程序正常结束。\n    return 0;\n}\n","cpp","",[28,44,45,62,69,76,95,111,116,139,158,163,176,181,198,215,220,225,231,242],{"__ignoreMap":42},[46,47,50,54,58],"span",{"class":48,"line":49},"line",1,[46,51,53],{"class":52},"szBVR","int",[46,55,57],{"class":56},"sScJk"," main",[46,59,61],{"class":60},"sVt8B","() {\n",[46,63,65],{"class":48,"line":64},2,[46,66,68],{"class":67},"sJ8bj","    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[46,70,72],{"class":48,"line":71},3,[46,73,75],{"emptyLinePlaceholder":74},true,"\n",[46,77,79,82,85,88,92],{"class":48,"line":78},4,[46,80,81],{"class":52},"    int",[46,83,84],{"class":60}," a ",[46,86,87],{"class":52},"=",[46,89,91],{"class":90},"sj4cs"," 10",[46,93,94],{"class":60},";\n",[46,96,98,100,103,106,108],{"class":48,"line":97},5,[46,99,81],{"class":52},[46,101,102],{"class":52}," &",[46,104,105],{"class":60},"b ",[46,107,87],{"class":52},[46,109,110],{"class":60}," a;\n",[46,112,114],{"class":48,"line":113},6,[46,115,75],{"emptyLinePlaceholder":74},[46,117,119,122,125,129,132,134,136],{"class":48,"line":118},7,[46,120,121],{"class":60},"    cout ",[46,123,124],{"class":52},"\u003C\u003C",[46,126,128],{"class":127},"sZZnC"," \"a = \"",[46,130,131],{"class":52}," \u003C\u003C",[46,133,84],{"class":60},[46,135,124],{"class":52},[46,137,138],{"class":60}," endl;\n",[46,140,142,144,146,149,151,154,156],{"class":48,"line":141},8,[46,143,121],{"class":60},[46,145,124],{"class":52},[46,147,148],{"class":127}," \"b = \"",[46,150,131],{"class":52},[46,152,153],{"class":60}," b ",[46,155,124],{"class":52},[46,157,138],{"class":60},[46,159,161],{"class":48,"line":160},9,[46,162,75],{"emptyLinePlaceholder":74},[46,164,166,169,171,174],{"class":48,"line":165},10,[46,167,168],{"class":60},"    b ",[46,170,87],{"class":52},[46,172,173],{"class":90}," 100",[46,175,94],{"class":60},[46,177,179],{"class":48,"line":178},11,[46,180,75],{"emptyLinePlaceholder":74},[46,182,184,186,188,190,192,194,196],{"class":48,"line":183},12,[46,185,121],{"class":60},[46,187,124],{"class":52},[46,189,128],{"class":127},[46,191,131],{"class":52},[46,193,84],{"class":60},[46,195,124],{"class":52},[46,197,138],{"class":60},[46,199,201,203,205,207,209,211,213],{"class":48,"line":200},13,[46,202,121],{"class":60},[46,204,124],{"class":52},[46,206,148],{"class":127},[46,208,131],{"class":52},[46,210,153],{"class":60},[46,212,124],{"class":52},[46,214,138],{"class":60},[46,216,218],{"class":48,"line":217},14,[46,219,75],{"emptyLinePlaceholder":74},[46,221,223],{"class":48,"line":222},15,[46,224,75],{"emptyLinePlaceholder":74},[46,226,228],{"class":48,"line":227},16,[46,229,230],{"class":67},"    // 返回 0 表示程序正常结束。\n",[46,232,234,237,240],{"class":48,"line":233},17,[46,235,236],{"class":52},"    return",[46,238,239],{"class":90}," 0",[46,241,94],{"class":60},[46,243,245],{"class":48,"line":244},18,[46,246,247],{"class":60},"}\n",[17,249,250,253],{},[23,251,252],{},"运行/观察结果："," 运行后会打印示例中的变量值或地址；地址值与运行环境有关，以同类对象的相对位置和指针变化为观察重点。",[13,255,256],{"id":256},"引用注意事项",[258,259,260,264],"ul",{},[261,262,263],"li",{},"引用必须初始化",[261,265,266],{},"引用在初始化后，不可以改变",[17,268,35],{},[37,270,272],{"className":39,"code":271,"language":41,"meta":42,"style":42},"int main() {\n\n    int a = 10;\n    int b = 20;\n    //int &c; //错误，引用必须初始化\n    int &c = a; //一旦初始化后，就不可以更改\n    c = b; //这是赋值操作，不是更改引用\n\n    cout \u003C\u003C \"a = \" \u003C\u003C a \u003C\u003C endl;\n    cout \u003C\u003C \"b = \" \u003C\u003C b \u003C\u003C endl;\n    cout \u003C\u003C \"c = \" \u003C\u003C c \u003C\u003C endl;\n\n\n    return 0;\n}\n",[28,273,274,282,286,298,311,319,336,349,353,369,385,403,407,411,419],{"__ignoreMap":42},[46,275,276,278,280],{"class":48,"line":49},[46,277,53],{"class":52},[46,279,57],{"class":56},[46,281,61],{"class":60},[46,283,284],{"class":48,"line":64},[46,285,75],{"emptyLinePlaceholder":74},[46,287,288,290,292,294,296],{"class":48,"line":71},[46,289,81],{"class":52},[46,291,84],{"class":60},[46,293,87],{"class":52},[46,295,91],{"class":90},[46,297,94],{"class":60},[46,299,300,302,304,306,309],{"class":48,"line":78},[46,301,81],{"class":52},[46,303,153],{"class":60},[46,305,87],{"class":52},[46,307,308],{"class":90}," 20",[46,310,94],{"class":60},[46,312,313,316],{"class":48,"line":97},[46,314,315],{"class":67},"    //int &c;",[46,317,318],{"class":67}," //错误，引用必须初始化\n",[46,320,321,323,325,328,330,333],{"class":48,"line":113},[46,322,81],{"class":52},[46,324,102],{"class":52},[46,326,327],{"class":60},"c ",[46,329,87],{"class":52},[46,331,332],{"class":60}," a;",[46,334,335],{"class":67}," //一旦初始化后，就不可以更改\n",[46,337,338,341,343,346],{"class":48,"line":118},[46,339,340],{"class":60},"    c ",[46,342,87],{"class":52},[46,344,345],{"class":60}," b;",[46,347,348],{"class":67}," //这是赋值操作，不是更改引用\n",[46,350,351],{"class":48,"line":141},[46,352,75],{"emptyLinePlaceholder":74},[46,354,355,357,359,361,363,365,367],{"class":48,"line":160},[46,356,121],{"class":60},[46,358,124],{"class":52},[46,360,128],{"class":127},[46,362,131],{"class":52},[46,364,84],{"class":60},[46,366,124],{"class":52},[46,368,138],{"class":60},[46,370,371,373,375,377,379,381,383],{"class":48,"line":165},[46,372,121],{"class":60},[46,374,124],{"class":52},[46,376,148],{"class":127},[46,378,131],{"class":52},[46,380,153],{"class":60},[46,382,124],{"class":52},[46,384,138],{"class":60},[46,386,387,389,391,394,396,399,401],{"class":48,"line":178},[46,388,121],{"class":60},[46,390,124],{"class":52},[46,392,393],{"class":127}," \"c = \"",[46,395,131],{"class":52},[46,397,398],{"class":60}," c ",[46,400,124],{"class":52},[46,402,138],{"class":60},[46,404,405],{"class":48,"line":183},[46,406,75],{"emptyLinePlaceholder":74},[46,408,409],{"class":48,"line":200},[46,410,75],{"emptyLinePlaceholder":74},[46,412,413,415,417],{"class":48,"line":217},[46,414,236],{"class":52},[46,416,239],{"class":90},[46,418,94],{"class":60},[46,420,421],{"class":48,"line":222},[46,422,247],{"class":60},[17,424,425,253],{},[23,426,252],{},[13,428,429],{"id":429},"引用做函数参数",[17,431,432],{},"**作用：**函数传参时，可以利用引用的技术让形参修饰实参",[17,434,435],{},"**优点：**可以简化指针修改实参",[17,437,438],{},[23,439,35],{},[37,441,443],{"className":39,"code":442,"language":41,"meta":42,"style":42},"//1. 值传递\nvoid mySwap01(int a, int b) {\n    int temp = a;\n    a = b;\n    b = temp;\n}\n\n//2. 地址传递\nvoid mySwap02(int* a, int* b) {\n    int temp = *a;\n    *a = *b;\n    *b = temp;\n}\n\n//3. 引用传递\nvoid mySwap03(int& a, int& b) {\n    int temp = a;\n    a = b;\n    b = temp;\n}\n\nint main() {\n\n    int a = 10;\n    int b = 20;\n\n    mySwap01(a, b);\n    cout \u003C\u003C \"a:\" \u003C\u003C a \u003C\u003C \" b:\" \u003C\u003C b \u003C\u003C endl;\n\n    mySwap02(&a, &b);\n    cout \u003C\u003C \"a:\" \u003C\u003C a \u003C\u003C \" b:\" \u003C\u003C b \u003C\u003C endl;\n\n    mySwap03(a, b);\n    cout \u003C\u003C \"a:\" \u003C\u003C a \u003C\u003C \" b:\" \u003C\u003C b \u003C\u003C endl;\n\n\n    return 0;\n}\n\n",[28,444,445,450,478,489,499,508,512,516,521,543,557,572,582,586,590,595,617,627,635,644,649,654,663,668,681,694,699,708,735,740,759,784,789,797,822,827,832,841],{"__ignoreMap":42},[46,446,447],{"class":48,"line":49},[46,448,449],{"class":67},"//1. 值传递\n",[46,451,452,455,458,461,463,467,470,472,475],{"class":48,"line":64},[46,453,454],{"class":52},"void",[46,456,457],{"class":56}," mySwap01",[46,459,460],{"class":60},"(",[46,462,53],{"class":52},[46,464,466],{"class":465},"s4XuR"," a",[46,468,469],{"class":60},", ",[46,471,53],{"class":52},[46,473,474],{"class":465}," b",[46,476,477],{"class":60},") {\n",[46,479,480,482,485,487],{"class":48,"line":71},[46,481,81],{"class":52},[46,483,484],{"class":60}," temp ",[46,486,87],{"class":52},[46,488,110],{"class":60},[46,490,491,494,496],{"class":48,"line":78},[46,492,493],{"class":60},"    a ",[46,495,87],{"class":52},[46,497,498],{"class":60}," b;\n",[46,500,501,503,505],{"class":48,"line":97},[46,502,168],{"class":60},[46,504,87],{"class":52},[46,506,507],{"class":60}," temp;\n",[46,509,510],{"class":48,"line":113},[46,511,247],{"class":60},[46,513,514],{"class":48,"line":118},[46,515,75],{"emptyLinePlaceholder":74},[46,517,518],{"class":48,"line":141},[46,519,520],{"class":67},"//2. 地址传递\n",[46,522,523,525,528,530,533,535,537,539,541],{"class":48,"line":160},[46,524,454],{"class":52},[46,526,527],{"class":56}," mySwap02",[46,529,460],{"class":60},[46,531,532],{"class":52},"int*",[46,534,466],{"class":465},[46,536,469],{"class":60},[46,538,532],{"class":52},[46,540,474],{"class":465},[46,542,477],{"class":60},[46,544,545,547,549,551,554],{"class":48,"line":165},[46,546,81],{"class":52},[46,548,484],{"class":60},[46,550,87],{"class":52},[46,552,553],{"class":52}," *",[46,555,556],{"class":60},"a;\n",[46,558,559,562,565,567,569],{"class":48,"line":178},[46,560,561],{"class":52},"    *",[46,563,564],{"class":60},"a ",[46,566,87],{"class":52},[46,568,553],{"class":52},[46,570,571],{"class":60},"b;\n",[46,573,574,576,578,580],{"class":48,"line":183},[46,575,561],{"class":52},[46,577,105],{"class":60},[46,579,87],{"class":52},[46,581,507],{"class":60},[46,583,584],{"class":48,"line":200},[46,585,247],{"class":60},[46,587,588],{"class":48,"line":217},[46,589,75],{"emptyLinePlaceholder":74},[46,591,592],{"class":48,"line":222},[46,593,594],{"class":67},"//3. 引用传递\n",[46,596,597,599,602,604,607,609,611,613,615],{"class":48,"line":227},[46,598,454],{"class":52},[46,600,601],{"class":56}," mySwap03",[46,603,460],{"class":60},[46,605,606],{"class":52},"int&",[46,608,466],{"class":465},[46,610,469],{"class":60},[46,612,606],{"class":52},[46,614,474],{"class":465},[46,616,477],{"class":60},[46,618,619,621,623,625],{"class":48,"line":233},[46,620,81],{"class":52},[46,622,484],{"class":60},[46,624,87],{"class":52},[46,626,110],{"class":60},[46,628,629,631,633],{"class":48,"line":244},[46,630,493],{"class":60},[46,632,87],{"class":52},[46,634,498],{"class":60},[46,636,638,640,642],{"class":48,"line":637},19,[46,639,168],{"class":60},[46,641,87],{"class":52},[46,643,507],{"class":60},[46,645,647],{"class":48,"line":646},20,[46,648,247],{"class":60},[46,650,652],{"class":48,"line":651},21,[46,653,75],{"emptyLinePlaceholder":74},[46,655,657,659,661],{"class":48,"line":656},22,[46,658,53],{"class":52},[46,660,57],{"class":56},[46,662,61],{"class":60},[46,664,666],{"class":48,"line":665},23,[46,667,75],{"emptyLinePlaceholder":74},[46,669,671,673,675,677,679],{"class":48,"line":670},24,[46,672,81],{"class":52},[46,674,84],{"class":60},[46,676,87],{"class":52},[46,678,91],{"class":90},[46,680,94],{"class":60},[46,682,684,686,688,690,692],{"class":48,"line":683},25,[46,685,81],{"class":52},[46,687,153],{"class":60},[46,689,87],{"class":52},[46,691,308],{"class":90},[46,693,94],{"class":60},[46,695,697],{"class":48,"line":696},26,[46,698,75],{"emptyLinePlaceholder":74},[46,700,702,705],{"class":48,"line":701},27,[46,703,704],{"class":56},"    mySwap01",[46,706,707],{"class":60},"(a, b);\n",[46,709,711,713,715,718,720,722,724,727,729,731,733],{"class":48,"line":710},28,[46,712,121],{"class":60},[46,714,124],{"class":52},[46,716,717],{"class":127}," \"a:\"",[46,719,131],{"class":52},[46,721,84],{"class":60},[46,723,124],{"class":52},[46,725,726],{"class":127}," \" b:\"",[46,728,131],{"class":52},[46,730,153],{"class":60},[46,732,124],{"class":52},[46,734,138],{"class":60},[46,736,738],{"class":48,"line":737},29,[46,739,75],{"emptyLinePlaceholder":74},[46,741,743,746,748,751,754,756],{"class":48,"line":742},30,[46,744,745],{"class":56},"    mySwap02",[46,747,460],{"class":60},[46,749,750],{"class":52},"&",[46,752,753],{"class":60},"a, ",[46,755,750],{"class":52},[46,757,758],{"class":60},"b);\n",[46,760,762,764,766,768,770,772,774,776,778,780,782],{"class":48,"line":761},31,[46,763,121],{"class":60},[46,765,124],{"class":52},[46,767,717],{"class":127},[46,769,131],{"class":52},[46,771,84],{"class":60},[46,773,124],{"class":52},[46,775,726],{"class":127},[46,777,131],{"class":52},[46,779,153],{"class":60},[46,781,124],{"class":52},[46,783,138],{"class":60},[46,785,787],{"class":48,"line":786},32,[46,788,75],{"emptyLinePlaceholder":74},[46,790,792,795],{"class":48,"line":791},33,[46,793,794],{"class":56},"    mySwap03",[46,796,707],{"class":60},[46,798,800,802,804,806,808,810,812,814,816,818,820],{"class":48,"line":799},34,[46,801,121],{"class":60},[46,803,124],{"class":52},[46,805,717],{"class":127},[46,807,131],{"class":52},[46,809,84],{"class":60},[46,811,124],{"class":52},[46,813,726],{"class":127},[46,815,131],{"class":52},[46,817,153],{"class":60},[46,819,124],{"class":52},[46,821,138],{"class":60},[46,823,825],{"class":48,"line":824},35,[46,826,75],{"emptyLinePlaceholder":74},[46,828,830],{"class":48,"line":829},36,[46,831,75],{"emptyLinePlaceholder":74},[46,833,835,837,839],{"class":48,"line":834},37,[46,836,236],{"class":52},[46,838,239],{"class":90},[46,840,94],{"class":60},[46,842,844],{"class":48,"line":843},38,[46,845,247],{"class":60},[17,847,848,253],{},[23,849,252],{},[851,852,853],"blockquote",{},[17,854,855],{},"总结：通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单",[13,857,858],{"id":858},"引用做函数返回值",[17,860,861],{},"作用：引用是可以作为函数的返回值存在的",[17,863,864,865],{},"注意：",[23,866,867],{},"不要返回局部变量引用",[17,869,870],{},"用法：函数调用作为左值",[17,872,873],{},[23,874,35],{},[37,876,878],{"className":39,"code":877,"language":41,"meta":42,"style":42},"//返回局部变量引用\nint& test01() {\n    int a = 10; //局部变量\n    return a;\n}\n\n//返回静态变量引用\nint& test02() {\n    static int a = 20;\n    return a;\n}\n\nint main() {\n\n    //不能返回局部变量的引用\n    int& ref = test01();\n    cout \u003C\u003C \"ref = \" \u003C\u003C ref \u003C\u003C endl;\n    cout \u003C\u003C \"ref = \" \u003C\u003C ref \u003C\u003C endl;\n\n    //如果函数做左值，那么必须返回引用\n    int& ref2 = test02();\n    cout \u003C\u003C \"ref2 = \" \u003C\u003C ref2 \u003C\u003C endl;\n    cout \u003C\u003C \"ref2 = \" \u003C\u003C ref2 \u003C\u003C endl;\n\n    test02() = 1000;\n\n    cout \u003C\u003C \"ref2 = \" \u003C\u003C ref2 \u003C\u003C endl;\n    cout \u003C\u003C \"ref2 = \" \u003C\u003C ref2 \u003C\u003C endl;\n\n\n    return 0;\n}\n",[28,879,880,885,894,910,916,920,924,929,938,954,960,964,968,976,980,985,1000,1017,1033,1037,1042,1055,1072,1088,1092,1107,1111,1127,1143,1147,1151,1159],{"__ignoreMap":42},[46,881,882],{"class":48,"line":49},[46,883,884],{"class":67},"//返回局部变量引用\n",[46,886,887,889,892],{"class":48,"line":64},[46,888,606],{"class":52},[46,890,891],{"class":56}," test01",[46,893,61],{"class":60},[46,895,896,898,900,902,904,907],{"class":48,"line":71},[46,897,81],{"class":52},[46,899,84],{"class":60},[46,901,87],{"class":52},[46,903,91],{"class":90},[46,905,906],{"class":60},";",[46,908,909],{"class":67}," //局部变量\n",[46,911,912,914],{"class":48,"line":78},[46,913,236],{"class":52},[46,915,110],{"class":60},[46,917,918],{"class":48,"line":97},[46,919,247],{"class":60},[46,921,922],{"class":48,"line":113},[46,923,75],{"emptyLinePlaceholder":74},[46,925,926],{"class":48,"line":118},[46,927,928],{"class":67},"//返回静态变量引用\n",[46,930,931,933,936],{"class":48,"line":141},[46,932,606],{"class":52},[46,934,935],{"class":56}," test02",[46,937,61],{"class":60},[46,939,940,943,946,948,950,952],{"class":48,"line":160},[46,941,942],{"class":52},"    static",[46,944,945],{"class":52}," int",[46,947,84],{"class":60},[46,949,87],{"class":52},[46,951,308],{"class":90},[46,953,94],{"class":60},[46,955,956,958],{"class":48,"line":165},[46,957,236],{"class":52},[46,959,110],{"class":60},[46,961,962],{"class":48,"line":178},[46,963,247],{"class":60},[46,965,966],{"class":48,"line":183},[46,967,75],{"emptyLinePlaceholder":74},[46,969,970,972,974],{"class":48,"line":200},[46,971,53],{"class":52},[46,973,57],{"class":56},[46,975,61],{"class":60},[46,977,978],{"class":48,"line":217},[46,979,75],{"emptyLinePlaceholder":74},[46,981,982],{"class":48,"line":222},[46,983,984],{"class":67},"    //不能返回局部变量的引用\n",[46,986,987,990,993,995,997],{"class":48,"line":227},[46,988,989],{"class":52},"    int&",[46,991,992],{"class":60}," ref ",[46,994,87],{"class":52},[46,996,891],{"class":56},[46,998,999],{"class":60},"();\n",[46,1001,1002,1004,1006,1009,1011,1013,1015],{"class":48,"line":233},[46,1003,121],{"class":60},[46,1005,124],{"class":52},[46,1007,1008],{"class":127}," \"ref = \"",[46,1010,131],{"class":52},[46,1012,992],{"class":60},[46,1014,124],{"class":52},[46,1016,138],{"class":60},[46,1018,1019,1021,1023,1025,1027,1029,1031],{"class":48,"line":244},[46,1020,121],{"class":60},[46,1022,124],{"class":52},[46,1024,1008],{"class":127},[46,1026,131],{"class":52},[46,1028,992],{"class":60},[46,1030,124],{"class":52},[46,1032,138],{"class":60},[46,1034,1035],{"class":48,"line":637},[46,1036,75],{"emptyLinePlaceholder":74},[46,1038,1039],{"class":48,"line":646},[46,1040,1041],{"class":67},"    //如果函数做左值，那么必须返回引用\n",[46,1043,1044,1046,1049,1051,1053],{"class":48,"line":651},[46,1045,989],{"class":52},[46,1047,1048],{"class":60}," ref2 ",[46,1050,87],{"class":52},[46,1052,935],{"class":56},[46,1054,999],{"class":60},[46,1056,1057,1059,1061,1064,1066,1068,1070],{"class":48,"line":656},[46,1058,121],{"class":60},[46,1060,124],{"class":52},[46,1062,1063],{"class":127}," \"ref2 = \"",[46,1065,131],{"class":52},[46,1067,1048],{"class":60},[46,1069,124],{"class":52},[46,1071,138],{"class":60},[46,1073,1074,1076,1078,1080,1082,1084,1086],{"class":48,"line":665},[46,1075,121],{"class":60},[46,1077,124],{"class":52},[46,1079,1063],{"class":127},[46,1081,131],{"class":52},[46,1083,1048],{"class":60},[46,1085,124],{"class":52},[46,1087,138],{"class":60},[46,1089,1090],{"class":48,"line":670},[46,1091,75],{"emptyLinePlaceholder":74},[46,1093,1094,1097,1100,1102,1105],{"class":48,"line":683},[46,1095,1096],{"class":56},"    test02",[46,1098,1099],{"class":60},"() ",[46,1101,87],{"class":52},[46,1103,1104],{"class":90}," 1000",[46,1106,94],{"class":60},[46,1108,1109],{"class":48,"line":696},[46,1110,75],{"emptyLinePlaceholder":74},[46,1112,1113,1115,1117,1119,1121,1123,1125],{"class":48,"line":701},[46,1114,121],{"class":60},[46,1116,124],{"class":52},[46,1118,1063],{"class":127},[46,1120,131],{"class":52},[46,1122,1048],{"class":60},[46,1124,124],{"class":52},[46,1126,138],{"class":60},[46,1128,1129,1131,1133,1135,1137,1139,1141],{"class":48,"line":710},[46,1130,121],{"class":60},[46,1132,124],{"class":52},[46,1134,1063],{"class":127},[46,1136,131],{"class":52},[46,1138,1048],{"class":60},[46,1140,124],{"class":52},[46,1142,138],{"class":60},[46,1144,1145],{"class":48,"line":737},[46,1146,75],{"emptyLinePlaceholder":74},[46,1148,1149],{"class":48,"line":742},[46,1150,75],{"emptyLinePlaceholder":74},[46,1152,1153,1155,1157],{"class":48,"line":761},[46,1154,236],{"class":52},[46,1156,239],{"class":90},[46,1158,94],{"class":60},[46,1160,1161],{"class":48,"line":786},[46,1162,247],{"class":60},[17,1164,1165,1167],{},[23,1166,252],{}," 运行后会按输出语句打印对应内容，变量值可结合初始化、赋值和函数调用顺序推导。",[17,1169,1170],{},"​",[13,1172,1173],{"id":1173},"引用的本质",[17,1175,1176,1177],{},"本质：",[23,1178,1179],{},"引用的本质在c++内部实现是一个指针常量.",[17,1181,1182],{},"讲解示例：",[37,1184,1186],{"className":39,"code":1185,"language":41,"meta":42,"style":42},"//发现是引用，转换为 int* const ref = &a;\nvoid func(int& ref){\n    ref = 100; // ref是引用，转换为*ref = 100\n}\nint main(){\n    int a = 10;\n    \n    //自动转换为 int* const ref = &a; 指针常量是指针指向不可改，也说明为什么引用不可更改\n    int& ref = a; \n    ref = 20; //内部发现ref是引用，自动帮我们转换为: *ref = 20;\n    \n    cout \u003C\u003C \"a:\" \u003C\u003C a \u003C\u003C endl;\n    cout \u003C\u003C \"ref:\" \u003C\u003C ref \u003C\u003C endl;\n    \n    func(a);\n    return 0;\n}\n",[28,1187,1188,1193,1210,1224,1228,1237,1249,1254,1259,1270,1283,1287,1303,1320,1324,1332,1340],{"__ignoreMap":42},[46,1189,1190],{"class":48,"line":49},[46,1191,1192],{"class":67},"//发现是引用，转换为 int* const ref = &a;\n",[46,1194,1195,1197,1200,1202,1204,1207],{"class":48,"line":64},[46,1196,454],{"class":52},[46,1198,1199],{"class":56}," func",[46,1201,460],{"class":60},[46,1203,606],{"class":52},[46,1205,1206],{"class":465}," ref",[46,1208,1209],{"class":60},"){\n",[46,1211,1212,1215,1217,1219,1221],{"class":48,"line":71},[46,1213,1214],{"class":60},"    ref ",[46,1216,87],{"class":52},[46,1218,173],{"class":90},[46,1220,906],{"class":60},[46,1222,1223],{"class":67}," // ref是引用，转换为*ref = 100\n",[46,1225,1226],{"class":48,"line":78},[46,1227,247],{"class":60},[46,1229,1230,1232,1234],{"class":48,"line":97},[46,1231,53],{"class":52},[46,1233,57],{"class":56},[46,1235,1236],{"class":60},"(){\n",[46,1238,1239,1241,1243,1245,1247],{"class":48,"line":113},[46,1240,81],{"class":52},[46,1242,84],{"class":60},[46,1244,87],{"class":52},[46,1246,91],{"class":90},[46,1248,94],{"class":60},[46,1250,1251],{"class":48,"line":118},[46,1252,1253],{"class":60},"    \n",[46,1255,1256],{"class":48,"line":141},[46,1257,1258],{"class":67},"    //自动转换为 int* const ref = &a; 指针常量是指针指向不可改，也说明为什么引用不可更改\n",[46,1260,1261,1263,1265,1267],{"class":48,"line":160},[46,1262,989],{"class":52},[46,1264,992],{"class":60},[46,1266,87],{"class":52},[46,1268,1269],{"class":60}," a; \n",[46,1271,1272,1274,1276,1278,1280],{"class":48,"line":165},[46,1273,1214],{"class":60},[46,1275,87],{"class":52},[46,1277,308],{"class":90},[46,1279,906],{"class":60},[46,1281,1282],{"class":67}," //内部发现ref是引用，自动帮我们转换为: *ref = 20;\n",[46,1284,1285],{"class":48,"line":178},[46,1286,1253],{"class":60},[46,1288,1289,1291,1293,1295,1297,1299,1301],{"class":48,"line":183},[46,1290,121],{"class":60},[46,1292,124],{"class":52},[46,1294,717],{"class":127},[46,1296,131],{"class":52},[46,1298,84],{"class":60},[46,1300,124],{"class":52},[46,1302,138],{"class":60},[46,1304,1305,1307,1309,1312,1314,1316,1318],{"class":48,"line":200},[46,1306,121],{"class":60},[46,1308,124],{"class":52},[46,1310,1311],{"class":127}," \"ref:\"",[46,1313,131],{"class":52},[46,1315,992],{"class":60},[46,1317,124],{"class":52},[46,1319,138],{"class":60},[46,1321,1322],{"class":48,"line":217},[46,1323,1253],{"class":60},[46,1325,1326,1329],{"class":48,"line":222},[46,1327,1328],{"class":56},"    func",[46,1330,1331],{"class":60},"(a);\n",[46,1333,1334,1336,1338],{"class":48,"line":227},[46,1335,236],{"class":52},[46,1337,239],{"class":90},[46,1339,94],{"class":60},[46,1341,1342],{"class":48,"line":233},[46,1343,247],{"class":60},[17,1345,1346,253],{},[23,1347,252],{},[17,1349,1350],{},"结论：C++推荐用引用技术，因为语法方便，引用本质是指针常量，但是所有的指针操作编译器都帮我们做了",[13,1352,1353],{"id":1353},"常量引用",[17,1355,1356],{},"**作用：**常量引用主要用来修饰形参，防止误操作",[17,1358,1359],{},"在函数形参列表中，可以加==const修饰形参==，防止形参改变实参",[17,1361,1362],{},[23,1363,35],{},[37,1365,1367],{"className":39,"code":1366,"language":41,"meta":42,"style":42},"//引用使用的场景，通常用来修饰形参\nvoid showValue(const int& v) {\n    //v += 10;\n    cout \u003C\u003C v \u003C\u003C endl;\n}\n\nint main() {\n\n    //int& ref = 10;  引用本身需要一个合法的内存空间，因此这行错误\n    //加入const就可以了，编译器优化代码，int temp = 10; const int& ref = temp;\n    const int& ref = 10;\n\n    //ref = 100;  //加入const后不可以修改变量\n    cout \u003C\u003C ref \u003C\u003C endl;\n\n    //函数中利用常量引用防止误操作修改实参\n    int a = 10;\n    showValue(a);\n\n\n    return 0;\n}\n",[28,1368,1369,1374,1394,1399,1412,1416,1420,1428,1432,1437,1442,1457,1461,1469,1481,1485,1490,1502,1509,1513,1517,1525],{"__ignoreMap":42},[46,1370,1371],{"class":48,"line":49},[46,1372,1373],{"class":67},"//引用使用的场景，通常用来修饰形参\n",[46,1375,1376,1378,1381,1383,1386,1389,1392],{"class":48,"line":64},[46,1377,454],{"class":52},[46,1379,1380],{"class":56}," showValue",[46,1382,460],{"class":60},[46,1384,1385],{"class":52},"const",[46,1387,1388],{"class":52}," int&",[46,1390,1391],{"class":465}," v",[46,1393,477],{"class":60},[46,1395,1396],{"class":48,"line":71},[46,1397,1398],{"class":67},"    //v += 10;\n",[46,1400,1401,1403,1405,1408,1410],{"class":48,"line":78},[46,1402,121],{"class":60},[46,1404,124],{"class":52},[46,1406,1407],{"class":60}," v ",[46,1409,124],{"class":52},[46,1411,138],{"class":60},[46,1413,1414],{"class":48,"line":97},[46,1415,247],{"class":60},[46,1417,1418],{"class":48,"line":113},[46,1419,75],{"emptyLinePlaceholder":74},[46,1421,1422,1424,1426],{"class":48,"line":118},[46,1423,53],{"class":52},[46,1425,57],{"class":56},[46,1427,61],{"class":60},[46,1429,1430],{"class":48,"line":141},[46,1431,75],{"emptyLinePlaceholder":74},[46,1433,1434],{"class":48,"line":160},[46,1435,1436],{"class":67},"    //int& ref = 10;  引用本身需要一个合法的内存空间，因此这行错误\n",[46,1438,1439],{"class":48,"line":165},[46,1440,1441],{"class":67},"    //加入const就可以了，编译器优化代码，int temp = 10; const int& ref = temp;\n",[46,1443,1444,1447,1449,1451,1453,1455],{"class":48,"line":178},[46,1445,1446],{"class":52},"    const",[46,1448,1388],{"class":52},[46,1450,992],{"class":60},[46,1452,87],{"class":52},[46,1454,91],{"class":90},[46,1456,94],{"class":60},[46,1458,1459],{"class":48,"line":183},[46,1460,75],{"emptyLinePlaceholder":74},[46,1462,1463,1466],{"class":48,"line":200},[46,1464,1465],{"class":67},"    //ref = 100;",[46,1467,1468],{"class":67},"  //加入const后不可以修改变量\n",[46,1470,1471,1473,1475,1477,1479],{"class":48,"line":217},[46,1472,121],{"class":60},[46,1474,124],{"class":52},[46,1476,992],{"class":60},[46,1478,124],{"class":52},[46,1480,138],{"class":60},[46,1482,1483],{"class":48,"line":222},[46,1484,75],{"emptyLinePlaceholder":74},[46,1486,1487],{"class":48,"line":227},[46,1488,1489],{"class":67},"    //函数中利用常量引用防止误操作修改实参\n",[46,1491,1492,1494,1496,1498,1500],{"class":48,"line":233},[46,1493,81],{"class":52},[46,1495,84],{"class":60},[46,1497,87],{"class":52},[46,1499,91],{"class":90},[46,1501,94],{"class":60},[46,1503,1504,1507],{"class":48,"line":244},[46,1505,1506],{"class":56},"    showValue",[46,1508,1331],{"class":60},[46,1510,1511],{"class":48,"line":637},[46,1512,75],{"emptyLinePlaceholder":74},[46,1514,1515],{"class":48,"line":646},[46,1516,75],{"emptyLinePlaceholder":74},[46,1518,1519,1521,1523],{"class":48,"line":651},[46,1520,236],{"class":52},[46,1522,239],{"class":90},[46,1524,94],{"class":60},[46,1526,1527],{"class":48,"line":656},[46,1528,247],{"class":60},[17,1530,1531,1167],{},[23,1532,252],{},[1534,1535,1536],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":42,"searchDepth":64,"depth":64,"links":1538},[1539],{"id":5,"depth":64,"text":5,"children":1540},[1541,1542,1543,1544,1545,1546],{"id":15,"depth":71,"text":15},{"id":256,"depth":71,"text":256},{"id":429,"depth":71,"text":429},{"id":858,"depth":71,"text":858},{"id":1173,"depth":71,"text":1173},{"id":1353,"depth":71,"text":1353},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","11",11000000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch11-引用",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","zh-CN","zh-cn",{},{"title":5,"description":42},"BkfGNLF6nZHs8YFggxZj1axsm15-KQM1efsp8S_WLDo",[1566,1572,1578,1579,1585,1591,1597,1603,1609,1615,1621,1627,1633,1639,1645,1651,1657,1663,1669,1675,1681,1687,1693,1699,1705,1711,1717,1723,1729,1735,1741,1747,1753,1759,1765,1771,1777,1783,1789,1795,1801,1807,1813,1819,1825,1831,1837,1843,1849,1855,1861,1867,1873,1879,1885,1891,1897,1903,1909,1915,1921,1927,1933,1939,1945,1951,1957,1963,1969,1975],{"path":1567,"stem":1568,"title":1569,"date":1550,"chapter":1570,"chapterSort":1571,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识","1",1000000,{"path":1573,"stem":1574,"title":1575,"date":1550,"chapter":1576,"chapterSort":1577,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期","10",10000000,{"path":1547,"stem":1556,"title":5,"date":1550,"chapter":1548,"chapterSort":1549,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},{"path":1580,"stem":1581,"title":1582,"date":1550,"chapter":1583,"chapterSort":1584,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":1586,"stem":1587,"title":1588,"date":1550,"chapter":1589,"chapterSort":1590,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":1592,"stem":1593,"title":1594,"date":1550,"chapter":1595,"chapterSort":1596,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理","对象初始化和清理","13.2",13020000,{"path":1598,"stem":1599,"title":1600,"date":1550,"chapter":1601,"chapterSort":1602,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":1604,"stem":1605,"title":1606,"date":1550,"chapter":1607,"chapterSort":1608,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":1610,"stem":1611,"title":1612,"date":1550,"chapter":1613,"chapterSort":1614,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch13-5-继承","继承","13.5",13050000,{"path":1616,"stem":1617,"title":1618,"date":1550,"chapter":1619,"chapterSort":1620,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":1622,"stem":1623,"title":1624,"date":1550,"chapter":1625,"chapterSort":1626,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":1628,"stem":1629,"title":1630,"date":1550,"chapter":1631,"chapterSort":1632,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","wiki/2023-10-05-Cplusplus教学/ch14-文件操作","文件操作","14",14000000,{"path":1634,"stem":1635,"title":1636,"date":1550,"chapter":1637,"chapterSort":1638,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":1640,"stem":1641,"title":1642,"date":1550,"chapter":1643,"chapterSort":1644,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":1646,"stem":1647,"title":1648,"date":1550,"chapter":1649,"chapterSort":1650,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":1652,"stem":1653,"title":1654,"date":1550,"chapter":1655,"chapterSort":1656,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":1658,"stem":1659,"title":1660,"date":1550,"chapter":1661,"chapterSort":1662,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":1664,"stem":1665,"title":1666,"date":1550,"chapter":1667,"chapterSort":1668,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":1670,"stem":1671,"title":1672,"date":1550,"chapter":1673,"chapterSort":1674,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":1676,"stem":1677,"title":1678,"date":1550,"chapter":1679,"chapterSort":1680,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词","函数对象与谓词","16.7",16070000,{"path":1682,"stem":1683,"title":1684,"date":1550,"chapter":1685,"chapterSort":1686,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":1688,"stem":1689,"title":1690,"date":1550,"chapter":1691,"chapterSort":1692,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":1694,"stem":1695,"title":1696,"date":1550,"chapter":1697,"chapterSort":1698,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":1700,"stem":1701,"title":1702,"date":1550,"chapter":1703,"chapterSort":1704,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","auto","18.1",18010000,{"path":1706,"stem":1707,"title":1708,"date":1550,"chapter":1709,"chapterSort":1710,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":1712,"stem":1713,"title":1714,"date":1550,"chapter":1715,"chapterSort":1716,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式","Lambda 表达式","18.11",18110000,{"path":1718,"stem":1719,"title":1720,"date":1550,"chapter":1721,"chapterSort":1722,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","std::function","18.12",18120000,{"path":1724,"stem":1725,"title":1726,"date":1550,"chapter":1727,"chapterSort":1728,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":1730,"stem":1731,"title":1732,"date":1550,"chapter":1733,"chapterSort":1734,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":1736,"stem":1737,"title":1738,"date":1550,"chapter":1739,"chapterSort":1740,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":1742,"stem":1743,"title":1744,"date":1550,"chapter":1745,"chapterSort":1746,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":1748,"stem":1749,"title":1750,"date":1550,"chapter":1751,"chapterSort":1752,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":1754,"stem":1755,"title":1756,"date":1550,"chapter":1757,"chapterSort":1758,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono","std::chrono","18.18",18180000,{"path":1760,"stem":1761,"title":1762,"date":1550,"chapter":1763,"chapterSort":1764,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":1766,"stem":1767,"title":1768,"date":1550,"chapter":1769,"chapterSort":1770,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":1772,"stem":1773,"title":1774,"date":1550,"chapter":1775,"chapterSort":1776,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":1778,"stem":1779,"title":1780,"date":1550,"chapter":1781,"chapterSort":1782,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":1784,"stem":1785,"title":1786,"date":1550,"chapter":1787,"chapterSort":1788,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":1790,"stem":1791,"title":1792,"date":1550,"chapter":1793,"chapterSort":1794,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":1796,"stem":1797,"title":1798,"date":1550,"chapter":1799,"chapterSort":1800,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":1802,"stem":1803,"title":1804,"date":1550,"chapter":1805,"chapterSort":1806,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":1808,"stem":1809,"title":1810,"date":1550,"chapter":1811,"chapterSort":1812,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","using","18.3",18030000,{"path":1814,"stem":1815,"title":1816,"date":1550,"chapter":1817,"chapterSort":1818,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class","enum class","18.4",18040000,{"path":1820,"stem":1821,"title":1822,"date":1550,"chapter":1823,"chapterSort":1824,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":1826,"stem":1827,"title":1828,"date":1550,"chapter":1829,"chapterSort":1830,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":1832,"stem":1833,"title":1834,"date":1550,"chapter":1835,"chapterSort":1836,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","constexpr","18.7",18070000,{"path":1838,"stem":1839,"title":1840,"date":1550,"chapter":1841,"chapterSort":1842,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":1844,"stem":1845,"title":1846,"date":1550,"chapter":1847,"chapterSort":1848,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":1850,"stem":1851,"title":1852,"date":1550,"chapter":1853,"chapterSort":1854,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++","18",18000000,{"path":1856,"stem":1857,"title":1858,"date":1550,"chapter":1859,"chapterSort":1860,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":1862,"stem":1863,"title":1864,"date":1550,"chapter":1865,"chapterSort":1866,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":1868,"stem":1869,"title":1870,"date":1550,"chapter":1871,"chapterSort":1872,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":1874,"stem":1875,"title":1876,"date":1550,"chapter":1877,"chapterSort":1878,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":1880,"stem":1881,"title":1882,"date":1550,"chapter":1883,"chapterSort":1884,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":1886,"stem":1887,"title":1888,"date":1550,"chapter":1889,"chapterSort":1890,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":1892,"stem":1893,"title":1894,"date":1550,"chapter":1895,"chapterSort":1896,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":1898,"stem":1899,"title":1900,"date":1550,"chapter":1901,"chapterSort":1902,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":1904,"stem":1905,"title":1906,"date":1550,"chapter":1907,"chapterSort":1908,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":1910,"stem":1911,"title":1912,"date":1550,"chapter":1913,"chapterSort":1914,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":1916,"stem":1917,"title":1918,"date":1550,"chapter":1919,"chapterSort":1920,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":1922,"stem":1923,"title":1924,"date":1550,"chapter":1925,"chapterSort":1926,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":1928,"stem":1929,"title":1930,"date":1550,"chapter":1931,"chapterSort":1932,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放","2",2000000,{"path":1934,"stem":1935,"title":1936,"date":1550,"chapter":1937,"chapterSort":1938,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出","3",3000000,{"path":1940,"stem":1941,"title":1942,"date":1550,"chapter":1943,"chapterSort":1944,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符","4",4000000,{"path":1946,"stem":1947,"title":1948,"date":1550,"chapter":1949,"chapterSort":1950,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构","5",5000000,{"path":1952,"stem":1953,"title":1954,"date":1550,"chapter":1955,"chapterSort":1956,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组","6",6000000,{"path":1958,"stem":1959,"title":1960,"date":1550,"chapter":1961,"chapterSort":1962,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":1964,"stem":1965,"title":1966,"date":1550,"chapter":1967,"chapterSort":1968,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":1970,"stem":1971,"title":1972,"date":1550,"chapter":1973,"chapterSort":1974,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":1557},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":1553,"stem":1976,"title":1977,"date":1550,"chapter":1558,"chapterSort":1978,"docKey":1552,"docRoot":1553,"docTitle":1554,"isWikiDoc":74,"isWikiIndex":74},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":1980},[1981,1984,1987,1990,1993],{"path":1982,"localeSlug":1983,"i18nKey":1556},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","en-us",{"path":1985,"localeSlug":1986,"i18nKey":1556},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","zh-hant",{"path":1988,"localeSlug":1989,"i18nKey":1556},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","zh-hk",{"path":1991,"localeSlug":1992,"i18nKey":1556},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","zh-tw",{"path":1547,"localeSlug":1561,"i18nKey":1556},[1982,1559,1985,1559,1988,1559,1991,1559,1547,1559],1780663030346]