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