[{"data":1,"prerenderedAt":1389},["ShallowReactive",2],{"wiki-page-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic":3,"wiki-doc-items-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic":967,"language-switcher-data-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic":1373,"wiki-i18n-paths-\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic":1388},{"id":4,"title":5,"body":6,"canonicalPath":949,"chapterDepth":68,"chapterOrder":950,"date":951,"description":50,"docI18nKey":952,"docKey":953,"docRoot":954,"docTitle":955,"extension":956,"i18nKey":957,"isBlogPost":958,"isWikiDoc":95,"isWikiIndex":958,"layout":959,"legacyPath":959,"locale":960,"localeSlug":961,"meta":962,"navigation":95,"path":949,"seo":963,"sourcePath":964,"sourceStem":957,"stem":965,"wikiDepth":57,"__hash__":966},"content\u002F_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic.md","std::atomic",{"type":7,"value":8,"toc":939},"minimark",[9,13,26,36,39,44,463,470,478,482,485,801,806,812,816,885,888,910,913,935],[10,11,12],"h2",{"id":12},"本節解決什麼問題",[14,15,16,17,21,22,25],"p",{},"如果共享數據只是一個簡單計數器，可以用 ",[18,19,20],"code",{},"std::atomic\u003Cint>","。它能保證 ",[18,23,24],{},"++counter"," 這樣的操作是線程安全的，不需要手動加鎖。",[14,27,28,31,32,35],{},[18,29,30],{},"atomic"," 適合簡單獨立的原子操作。多個變量需要保持一致，或者需要執行復雜邏輯時，仍然應該使用 ",[18,33,34],{},"mutex","。",[10,37,38],{"id":38},"示例代碼",[40,41,43],"h3",{"id":42},"示例-1用-atomic-實現線程安全計數","示例 1：用 atomic 實現線程安全計數",[45,46,51],"pre",{"className":47,"code":48,"language":49,"meta":50,"style":50},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Catomic>\n#include \u003Ciostream>\n#include \u003Cthread>\n#include \u003Cvector>\n\n\u002F\u002F atomic 提供原子操作，适合简单的跨线程共享状态。\nstd::atomic\u003Cint> counter{0};\n\nvoid add_many(int times)\n{\n    for (int i = 0; i \u003C times; ++i)\n    {\n        ++counter;\n    }\n}\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    \u002F\u002F vector 是动态数组，元素数量可以在运行时变化。\n    std::vector\u003Cstd::thread> threads;\n\n    for (int i = 0; i \u003C 4; ++i)\n    {\n        threads.emplace_back(add_many, 100000);\n    }\n\n    for (auto& thread : threads)\n    {\n        \u002F\u002F join 会等待子线程结束，避免 main 提前退出。\n        thread.join();\n    }\n\n    std::cout \u003C\u003C \"counter = \" \u003C\u003C counter \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"expected = 400000\\n\";\n\n    return 0;\n}\n","cpp","",[18,52,53,66,74,82,90,97,104,128,133,155,161,196,202,211,217,223,228,239,244,250,256,278,283,312,317,335,340,345,358,363,369,381,386,391,425,443,448,458],{"__ignoreMap":50},[54,55,58,62],"span",{"class":56,"line":57},"line",1,[54,59,61],{"class":60},"szBVR","#include",[54,63,65],{"class":64},"sZZnC"," \u003Catomic>\n",[54,67,69,71],{"class":56,"line":68},2,[54,70,61],{"class":60},[54,72,73],{"class":64}," \u003Ciostream>\n",[54,75,77,79],{"class":56,"line":76},3,[54,78,61],{"class":60},[54,80,81],{"class":64}," \u003Cthread>\n",[54,83,85,87],{"class":56,"line":84},4,[54,86,61],{"class":60},[54,88,89],{"class":64}," \u003Cvector>\n",[54,91,93],{"class":56,"line":92},5,[54,94,96],{"emptyLinePlaceholder":95},true,"\n",[54,98,100],{"class":56,"line":99},6,[54,101,103],{"class":102},"sJ8bj","\u002F\u002F atomic 提供原子操作，适合简单的跨线程共享状态。\n",[54,105,107,111,115,118,121,125],{"class":56,"line":106},7,[54,108,110],{"class":109},"sScJk","std",[54,112,114],{"class":113},"sVt8B","::atomic",[54,116,117],{"class":60},"\u003Cint>",[54,119,120],{"class":113}," counter{",[54,122,124],{"class":123},"sj4cs","0",[54,126,127],{"class":113},"};\n",[54,129,131],{"class":56,"line":130},8,[54,132,96],{"emptyLinePlaceholder":95},[54,134,136,139,142,145,148,152],{"class":56,"line":135},9,[54,137,138],{"class":60},"void",[54,140,141],{"class":109}," add_many",[54,143,144],{"class":113},"(",[54,146,147],{"class":60},"int",[54,149,151],{"class":150},"s4XuR"," times",[54,153,154],{"class":113},")\n",[54,156,158],{"class":56,"line":157},10,[54,159,160],{"class":113},"{\n",[54,162,164,167,170,172,175,178,181,184,187,190,193],{"class":56,"line":163},11,[54,165,166],{"class":60},"    for",[54,168,169],{"class":113}," (",[54,171,147],{"class":60},[54,173,174],{"class":113}," i ",[54,176,177],{"class":60},"=",[54,179,180],{"class":123}," 0",[54,182,183],{"class":113},"; i ",[54,185,186],{"class":60},"\u003C",[54,188,189],{"class":113}," times; ",[54,191,192],{"class":60},"++",[54,194,195],{"class":113},"i)\n",[54,197,199],{"class":56,"line":198},12,[54,200,201],{"class":113},"    {\n",[54,203,205,208],{"class":56,"line":204},13,[54,206,207],{"class":60},"        ++",[54,209,210],{"class":113},"counter;\n",[54,212,214],{"class":56,"line":213},14,[54,215,216],{"class":113},"    }\n",[54,218,220],{"class":56,"line":219},15,[54,221,222],{"class":113},"}\n",[54,224,226],{"class":56,"line":225},16,[54,227,96],{"emptyLinePlaceholder":95},[54,229,231,233,236],{"class":56,"line":230},17,[54,232,147],{"class":60},[54,234,235],{"class":109}," main",[54,237,238],{"class":113},"()\n",[54,240,242],{"class":56,"line":241},18,[54,243,160],{"class":113},[54,245,247],{"class":56,"line":246},19,[54,248,249],{"class":102},"    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[54,251,253],{"class":56,"line":252},20,[54,254,255],{"class":102},"    \u002F\u002F vector 是动态数组，元素数量可以在运行时变化。\n",[54,257,259,262,265,267,269,272,275],{"class":56,"line":258},21,[54,260,261],{"class":109},"    std",[54,263,264],{"class":113},"::vector",[54,266,186],{"class":60},[54,268,110],{"class":109},[54,270,271],{"class":113},"::thread",[54,273,274],{"class":60},">",[54,276,277],{"class":113}," threads;\n",[54,279,281],{"class":56,"line":280},22,[54,282,96],{"emptyLinePlaceholder":95},[54,284,286,288,290,292,294,296,298,300,302,305,308,310],{"class":56,"line":285},23,[54,287,166],{"class":60},[54,289,169],{"class":113},[54,291,147],{"class":60},[54,293,174],{"class":113},[54,295,177],{"class":60},[54,297,180],{"class":123},[54,299,183],{"class":113},[54,301,186],{"class":60},[54,303,304],{"class":123}," 4",[54,306,307],{"class":113},"; ",[54,309,192],{"class":60},[54,311,195],{"class":113},[54,313,315],{"class":56,"line":314},24,[54,316,201],{"class":113},[54,318,320,323,326,329,332],{"class":56,"line":319},25,[54,321,322],{"class":113},"        threads.",[54,324,325],{"class":109},"emplace_back",[54,327,328],{"class":113},"(add_many, ",[54,330,331],{"class":123},"100000",[54,333,334],{"class":113},");\n",[54,336,338],{"class":56,"line":337},26,[54,339,216],{"class":113},[54,341,343],{"class":56,"line":342},27,[54,344,96],{"emptyLinePlaceholder":95},[54,346,348,350,352,355],{"class":56,"line":347},28,[54,349,166],{"class":60},[54,351,169],{"class":113},[54,353,354],{"class":60},"auto&",[54,356,357],{"class":113}," thread : threads)\n",[54,359,361],{"class":56,"line":360},29,[54,362,201],{"class":113},[54,364,366],{"class":56,"line":365},30,[54,367,368],{"class":102},"        \u002F\u002F join 会等待子线程结束，避免 main 提前退出。\n",[54,370,372,375,378],{"class":56,"line":371},31,[54,373,374],{"class":113},"        thread.",[54,376,377],{"class":109},"join",[54,379,380],{"class":113},"();\n",[54,382,384],{"class":56,"line":383},32,[54,385,216],{"class":113},[54,387,389],{"class":56,"line":388},33,[54,390,96],{"emptyLinePlaceholder":95},[54,392,394,396,399,402,405,408,411,413,416,419,422],{"class":56,"line":393},34,[54,395,261],{"class":109},[54,397,398],{"class":113},"::cout ",[54,400,401],{"class":60},"\u003C\u003C",[54,403,404],{"class":64}," \"counter = \"",[54,406,407],{"class":60}," \u003C\u003C",[54,409,410],{"class":113}," counter ",[54,412,401],{"class":60},[54,414,415],{"class":64}," \"",[54,417,418],{"class":123},"\\n",[54,420,421],{"class":64},"\"",[54,423,424],{"class":113},";\n",[54,426,428,430,432,434,437,439,441],{"class":56,"line":427},35,[54,429,261],{"class":109},[54,431,398],{"class":113},[54,433,401],{"class":60},[54,435,436],{"class":64}," \"expected = 400000",[54,438,418],{"class":123},[54,440,421],{"class":64},[54,442,424],{"class":113},[54,444,446],{"class":56,"line":445},36,[54,447,96],{"emptyLinePlaceholder":95},[54,449,451,454,456],{"class":56,"line":450},37,[54,452,453],{"class":60},"    return",[54,455,180],{"class":123},[54,457,424],{"class":113},[54,459,461],{"class":56,"line":460},38,[54,462,222],{"class":113},[14,464,465,469],{},[466,467,468],"strong",{},"運行結果","：",[45,471,476],{"className":472,"code":474,"language":475,"meta":50},[473],"language-text","counter = 400000\nexpected = 400000\n","text",[18,477,474],{"__ignoreMap":50},[40,479,481],{"id":480},"示例-2atomic-適合狀態標記","示例 2：atomic 適合狀態標記",[14,483,484],{},"下面例子用一個原子布爾值做停止標記。主線程修改標記，工作線程能安全看到變化。",[45,486,488],{"className":47,"code":487,"language":49,"meta":50,"style":50},"#include \u003Catomic>\n#include \u003Cchrono>\n#include \u003Ciostream>\n#include \u003Cthread>\n\n\u002F\u002F atomic 提供原子操作，适合简单的跨线程共享状态。\nstd::atomic\u003Cbool> running{true};\n\nvoid worker()\n{\n    int count = 0;\n    while (running)\n    {\n        ++count;\n        std::this_thread::sleep_for(std::chrono::milliseconds(100));\n    }\n\n    std::cout \u003C\u003C \"worker count = \" \u003C\u003C count \u003C\u003C \"\\n\";\n}\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    \u002F\u002F 创建子线程，让这部分代码和 main 线程并发运行。\n    std::thread t(worker);\n\n    std::this_thread::sleep_for(std::chrono::milliseconds(350));\n    running = false;\n\n    \u002F\u002F join 会等待子线程结束，避免 main 提前退出。\n    t.join();\n    std::cout \u003C\u003C \"stopped\\n\";\n\n    return 0;\n}\n",[18,489,490,496,503,509,515,519,523,540,544,553,557,571,579,583,590,628,632,636,661,665,669,677,681,685,690,703,707,738,750,754,759,768,785,789,797],{"__ignoreMap":50},[54,491,492,494],{"class":56,"line":57},[54,493,61],{"class":60},[54,495,65],{"class":64},[54,497,498,500],{"class":56,"line":68},[54,499,61],{"class":60},[54,501,502],{"class":64}," \u003Cchrono>\n",[54,504,505,507],{"class":56,"line":76},[54,506,61],{"class":60},[54,508,73],{"class":64},[54,510,511,513],{"class":56,"line":84},[54,512,61],{"class":60},[54,514,81],{"class":64},[54,516,517],{"class":56,"line":92},[54,518,96],{"emptyLinePlaceholder":95},[54,520,521],{"class":56,"line":99},[54,522,103],{"class":102},[54,524,525,527,529,532,535,538],{"class":56,"line":106},[54,526,110],{"class":109},[54,528,114],{"class":113},[54,530,531],{"class":60},"\u003Cbool>",[54,533,534],{"class":113}," running{",[54,536,537],{"class":123},"true",[54,539,127],{"class":113},[54,541,542],{"class":56,"line":130},[54,543,96],{"emptyLinePlaceholder":95},[54,545,546,548,551],{"class":56,"line":135},[54,547,138],{"class":60},[54,549,550],{"class":109}," worker",[54,552,238],{"class":113},[54,554,555],{"class":56,"line":157},[54,556,160],{"class":113},[54,558,559,562,565,567,569],{"class":56,"line":163},[54,560,561],{"class":60},"    int",[54,563,564],{"class":113}," count ",[54,566,177],{"class":60},[54,568,180],{"class":123},[54,570,424],{"class":113},[54,572,573,576],{"class":56,"line":198},[54,574,575],{"class":60},"    while",[54,577,578],{"class":113}," (running)\n",[54,580,581],{"class":56,"line":204},[54,582,201],{"class":113},[54,584,585,587],{"class":56,"line":213},[54,586,207],{"class":60},[54,588,589],{"class":113},"count;\n",[54,591,592,595,598,601,603,606,608,610,612,615,617,620,622,625],{"class":56,"line":219},[54,593,594],{"class":109},"        std",[54,596,597],{"class":113},"::",[54,599,600],{"class":109},"this_thread",[54,602,597],{"class":113},[54,604,605],{"class":109},"sleep_for",[54,607,144],{"class":113},[54,609,110],{"class":109},[54,611,597],{"class":113},[54,613,614],{"class":109},"chrono",[54,616,597],{"class":113},[54,618,619],{"class":109},"milliseconds",[54,621,144],{"class":113},[54,623,624],{"class":123},"100",[54,626,627],{"class":113},"));\n",[54,629,630],{"class":56,"line":225},[54,631,216],{"class":113},[54,633,634],{"class":56,"line":230},[54,635,96],{"emptyLinePlaceholder":95},[54,637,638,640,642,644,647,649,651,653,655,657,659],{"class":56,"line":241},[54,639,261],{"class":109},[54,641,398],{"class":113},[54,643,401],{"class":60},[54,645,646],{"class":64}," \"worker count = \"",[54,648,407],{"class":60},[54,650,564],{"class":113},[54,652,401],{"class":60},[54,654,415],{"class":64},[54,656,418],{"class":123},[54,658,421],{"class":64},[54,660,424],{"class":113},[54,662,663],{"class":56,"line":246},[54,664,222],{"class":113},[54,666,667],{"class":56,"line":252},[54,668,96],{"emptyLinePlaceholder":95},[54,670,671,673,675],{"class":56,"line":258},[54,672,147],{"class":60},[54,674,235],{"class":109},[54,676,238],{"class":113},[54,678,679],{"class":56,"line":280},[54,680,160],{"class":113},[54,682,683],{"class":56,"line":285},[54,684,249],{"class":102},[54,686,687],{"class":56,"line":314},[54,688,689],{"class":102},"    \u002F\u002F 创建子线程，让这部分代码和 main 线程并发运行。\n",[54,691,692,694,697,700],{"class":56,"line":319},[54,693,261],{"class":109},[54,695,696],{"class":113},"::thread ",[54,698,699],{"class":109},"t",[54,701,702],{"class":113},"(worker);\n",[54,704,705],{"class":56,"line":337},[54,706,96],{"emptyLinePlaceholder":95},[54,708,709,711,713,715,717,719,721,723,725,727,729,731,733,736],{"class":56,"line":342},[54,710,261],{"class":109},[54,712,597],{"class":113},[54,714,600],{"class":109},[54,716,597],{"class":113},[54,718,605],{"class":109},[54,720,144],{"class":113},[54,722,110],{"class":109},[54,724,597],{"class":113},[54,726,614],{"class":109},[54,728,597],{"class":113},[54,730,619],{"class":109},[54,732,144],{"class":113},[54,734,735],{"class":123},"350",[54,737,627],{"class":113},[54,739,740,743,745,748],{"class":56,"line":347},[54,741,742],{"class":113},"    running ",[54,744,177],{"class":60},[54,746,747],{"class":123}," false",[54,749,424],{"class":113},[54,751,752],{"class":56,"line":360},[54,753,96],{"emptyLinePlaceholder":95},[54,755,756],{"class":56,"line":365},[54,757,758],{"class":102},"    \u002F\u002F join 会等待子线程结束，避免 main 提前退出。\n",[54,760,761,764,766],{"class":56,"line":371},[54,762,763],{"class":113},"    t.",[54,765,377],{"class":109},[54,767,380],{"class":113},[54,769,770,772,774,776,779,781,783],{"class":56,"line":383},[54,771,261],{"class":109},[54,773,398],{"class":113},[54,775,401],{"class":60},[54,777,778],{"class":64}," \"stopped",[54,780,418],{"class":123},[54,782,421],{"class":64},[54,784,424],{"class":113},[54,786,787],{"class":56,"line":388},[54,788,96],{"emptyLinePlaceholder":95},[54,790,791,793,795],{"class":56,"line":393},[54,792,453],{"class":60},[54,794,180],{"class":123},[54,796,424],{"class":113},[54,798,799],{"class":56,"line":427},[54,800,222],{"class":113},[14,802,803,469],{},[466,804,805],{},"一種可能的運行結果",[45,807,810],{"className":808,"code":809,"language":475,"meta":50},[473],"worker count = 4\nstopped\n",[18,811,809],{"__ignoreMap":50},[10,813,815],{"id":814},"mutex-和-atomic-怎麼選","mutex 和 atomic 怎麼選",[817,818,819,833],"table",{},[820,821,822],"thead",{},[823,824,825,830],"tr",{},[826,827,829],"th",{"align":828},"left","場景",[826,831,832],{"align":828},"推薦",[834,835,836,846,856,866,875],"tbody",{},[823,837,838,842],{},[839,840,841],"td",{"align":828},"簡單計數、自增、自減",[839,843,844],{"align":828},[18,845,5],{},[823,847,848,851],{},[839,849,850],{"align":828},"一個布爾停止標記",[839,852,853],{"align":828},[18,854,855],{},"std::atomic\u003Cbool>",[823,857,858,861],{},[839,859,860],{"align":828},"多個變量要同時保持一致",[839,862,863],{"align":828},[18,864,865],{},"std::mutex",[823,867,868,871],{},[839,869,870],{"align":828},"修改容器、對象內部複雜狀態",[839,872,873],{"align":828},[18,874,865],{},[823,876,877,880],{},[839,878,879],{"align":828},"需要等待某個條件成立",[839,881,882],{"align":828},[18,883,884],{},"std::condition_variable",[10,886,887],{"id":887},"常見錯誤",[889,890,891,898,904],"ol",{},[892,893,894,895,897],"li",{},"以為用了 ",[18,896,30],{},"，整個對象就都線程安全。只有這個原子變量自己的操作是線程安全的。",[892,899,900,901,903],{},"用多個 ",[18,902,30],{}," 表達一個整體狀態，卻沒有保證它們之間的一致性。",[892,905,906,907,909],{},"在複雜共享數據結構上強行用 ",[18,908,30],{},"，導致代碼難懂又容易錯。",[10,911,912],{"id":912},"小結",[914,915,916,922,927,932],"ul",{},[892,917,918,921],{},[18,919,920],{},"std::atomic\u003CT>"," 讓簡單變量的基本操作具備線程安全性。",[892,923,924,925,35],{},"簡單計數器和停止標記很適合 ",[18,926,30],{},[892,928,929,930,35],{},"複雜共享狀態仍然應該用 ",[18,931,34],{},[892,933,934],{},"初學階段不必展開內存序，先掌握默認用法和適用邊界。",[936,937,938],"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 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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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);}",{"title":50,"searchDepth":68,"depth":68,"links":940},[941,942,946,947,948],{"id":12,"depth":68,"text":12},{"id":38,"depth":68,"text":38,"children":943},[944,945],{"id":42,"depth":76,"text":43},{"id":480,"depth":76,"text":481},{"id":814,"depth":68,"text":815},{"id":887,"depth":68,"text":887},{"id":912,"depth":68,"text":912},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","2000-1900-0300","2023-10-05","wiki\u002F2023-10-05-cplusplus-jiao-xue","zh-tw:2023-10-05-cplusplus-jiao-xue","\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic",false,null,"zh-TW","zh-tw",{},{"title":5,"description":50},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","FW-kDMpD_Hy2DTEN5kbWgJrlOWe9zNnElwl9PSKi72o",[968,974,979,984,989,994,999,1004,1009,1014,1019,1024,1029,1034,1039,1044,1049,1054,1059,1064,1069,1074,1079,1084,1089,1094,1099,1104,1109,1114,1119,1124,1129,1134,1139,1144,1149,1154,1159,1164,1169,1174,1179,1184,1189,1194,1199,1204,1209,1214,1219,1224,1229,1234,1239,1244,1249,1254,1255,1260,1265,1270,1275,1280,1285,1290,1295,1300,1305,1310,1315,1320,1325,1330,1335,1340,1345,1350,1355,1360,1365,1370],{"path":969,"stem":970,"title":971,"date":951,"chapterOrder":972,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++開發環境搭建與測試","0100",0,{"path":975,"stem":976,"title":977,"date":951,"chapterOrder":978,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++基礎初識","0200",{"path":980,"stem":981,"title":982,"date":951,"chapterOrder":983,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","數據類型與數據存放","0300",{"path":985,"stem":986,"title":987,"date":951,"chapterOrder":988,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","輸入輸出","0400",{"path":990,"stem":991,"title":992,"date":951,"chapterOrder":993,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","運算符","0500",{"path":995,"stem":996,"title":997,"date":951,"chapterOrder":998,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","程序流程結構","0600",{"path":1000,"stem":1001,"title":1002,"date":951,"chapterOrder":1003,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","數組","0700",{"path":1005,"stem":1006,"title":1007,"date":951,"chapterOrder":1008,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","函數與頭文件","0800",{"path":1010,"stem":1011,"title":1012,"date":951,"chapterOrder":1013,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","指針","0900",{"path":1015,"stem":1016,"title":1017,"date":951,"chapterOrder":1018,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","結構體與共用體","1000",{"path":1020,"stem":1021,"title":1022,"date":951,"chapterOrder":1023,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","內存分區與生命週期","1100",{"path":1025,"stem":1026,"title":1027,"date":951,"chapterOrder":1028,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","引用","1200",{"path":1030,"stem":1031,"title":1032,"date":951,"chapterOrder":1033,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","函數提高與命名空間","1300",{"path":1035,"stem":1036,"title":1037,"date":951,"chapterOrder":1038,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","封裝","1400-0100",{"path":1040,"stem":1041,"title":1042,"date":951,"chapterOrder":1043,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","對象初始化和清理","1400-0200",{"path":1045,"stem":1046,"title":1047,"date":951,"chapterOrder":1048,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","對象模型與this指針","1400-0300",{"path":1050,"stem":1051,"title":1052,"date":951,"chapterOrder":1053,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","友元與運算符重載","1400-0400",{"path":1055,"stem":1056,"title":1057,"date":951,"chapterOrder":1058,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","繼承","1400-0500",{"path":1060,"stem":1061,"title":1062,"date":951,"chapterOrder":1063,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","多態","1400-0600",{"path":1065,"stem":1066,"title":1067,"date":951,"chapterOrder":1068,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","類和對象","1400",{"path":1070,"stem":1071,"title":1072,"date":951,"chapterOrder":1073,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","文件操作","1500",{"path":1075,"stem":1076,"title":1077,"date":951,"chapterOrder":1078,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","異常處理","1600",{"path":1080,"stem":1081,"title":1082,"date":951,"chapterOrder":1083,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","模板","1700",{"path":1085,"stem":1086,"title":1087,"date":951,"chapterOrder":1088,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","STL初識","1800-0100",{"path":1090,"stem":1091,"title":1092,"date":951,"chapterOrder":1093,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":1095,"stem":1096,"title":1097,"date":951,"chapterOrder":1098,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string容器","1800-0300",{"path":1100,"stem":1101,"title":1102,"date":951,"chapterOrder":1103,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector容器","vector 容器","1800-0400",{"path":1105,"stem":1106,"title":1107,"date":951,"chapterOrder":1108,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-deque-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-deque容器","deque 容器","1800-0500",{"path":1110,"stem":1111,"title":1112,"date":951,"chapterOrder":1113,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-stack-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-stack容器","stack 容器","1800-0600",{"path":1115,"stem":1116,"title":1117,"date":951,"chapterOrder":1118,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-queue-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-queue容器","queue 容器","1800-0700",{"path":1120,"stem":1121,"title":1122,"date":951,"chapterOrder":1123,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-list-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-list容器","list 容器","1800-0800",{"path":1125,"stem":1126,"title":1127,"date":951,"chapterOrder":1128,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0900-set-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0900-set容器","set \u002F multiset 容器","1800-0900",{"path":1130,"stem":1131,"title":1132,"date":951,"chapterOrder":1133,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1000-map-rong-qi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1000-map容器","map \u002F multimap 容器","1800-1000",{"path":1135,"stem":1136,"title":1137,"date":951,"chapterOrder":1138,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1100-han-shu-dui-xiang-yu-wei-ci","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1100-函数对象与谓词","函數對象與謂詞","1800-1100",{"path":1140,"stem":1141,"title":1142,"date":951,"chapterOrder":1143,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1200-chang-yong-suan-fa","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1200-常用算法","常用算法","1800-1200",{"path":1145,"stem":1146,"title":1147,"date":951,"chapterOrder":1148,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","STL提高編程","1800",{"path":1150,"stem":1151,"title":1152,"date":951,"chapterOrder":1153,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++類型轉換","1900",{"path":1155,"stem":1156,"title":1157,"date":951,"chapterOrder":1158,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":1160,"stem":1161,"title":1162,"date":951,"chapterOrder":1163,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":1165,"stem":1166,"title":1167,"date":951,"chapterOrder":1168,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":1170,"stem":1171,"title":1172,"date":951,"chapterOrder":1173,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","enum class","2000-0400",{"path":1175,"stem":1176,"title":1177,"date":951,"chapterOrder":1178,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","範圍 for 循環","2000-0500",{"path":1180,"stem":1181,"title":1182,"date":951,"chapterOrder":1183,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","結構化綁定","2000-0600",{"path":1185,"stem":1186,"title":1187,"date":951,"chapterOrder":1188,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr","2000-0700",{"path":1190,"stem":1191,"title":1192,"date":951,"chapterOrder":1193,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":1195,"stem":1196,"title":1197,"date":951,"chapterOrder":1198,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","智能指針","2000-0900",{"path":1200,"stem":1201,"title":1202,"date":951,"chapterOrder":1203,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","右值引用和移動語義","2000-1000",{"path":1205,"stem":1206,"title":1207,"date":951,"chapterOrder":1208,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda 表達式","2000-1100",{"path":1210,"stem":1211,"title":1212,"date":951,"chapterOrder":1213,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function","2000-1200",{"path":1215,"stem":1216,"title":1217,"date":951,"chapterOrder":1218,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":1220,"stem":1221,"title":1222,"date":951,"chapterOrder":1223,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":1225,"stem":1226,"title":1227,"date":951,"chapterOrder":1228,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":1230,"stem":1231,"title":1232,"date":951,"chapterOrder":1233,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":1235,"stem":1236,"title":1237,"date":951,"chapterOrder":1238,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":1240,"stem":1241,"title":1242,"date":951,"chapterOrder":1243,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":1245,"stem":1246,"title":1247,"date":951,"chapterOrder":1248,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread 與 join","2000-1900-0100",{"path":1250,"stem":1251,"title":1252,"date":951,"chapterOrder":1253,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 與 lock_guard","2000-1900-0200",{"path":949,"stem":965,"title":5,"date":951,"chapterOrder":950,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},{"path":1256,"stem":1257,"title":1258,"date":951,"chapterOrder":1259,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":1261,"stem":1262,"title":1263,"date":951,"chapterOrder":1264,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","併發編程","2000-1900",{"path":1266,"stem":1267,"title":1268,"date":951,"chapterOrder":1269,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":1271,"stem":1272,"title":1273,"date":951,"chapterOrder":1274,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","modules 簡介","2000-2100",{"path":1276,"stem":1277,"title":1278,"date":951,"chapterOrder":1279,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","現代C++","2000",{"path":1281,"stem":1282,"title":1283,"date":951,"chapterOrder":1284,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","定時器與異步 IO","2100-0100-0100",{"path":1286,"stem":1287,"title":1288,"date":951,"chapterOrder":1289,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio 基礎","2100-0100-0200",{"path":1291,"stem":1292,"title":1293,"date":951,"chapterOrder":1294,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","串口通信","2100-0100-0300",{"path":1296,"stem":1297,"title":1298,"date":951,"chapterOrder":1299,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP 通信","2100-0100-0400",{"path":1301,"stem":1302,"title":1303,"date":951,"chapterOrder":1304,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP 通信","2100-0100-0500",{"path":1306,"stem":1307,"title":1308,"date":951,"chapterOrder":1309,"chapterDepth":68,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","機器人工程寫法與 ROS2 集成","2100-0100-0600",{"path":1311,"stem":1312,"title":1313,"date":951,"chapterOrder":1314,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio異步IO庫","2100-0100",{"path":1316,"stem":1317,"title":1318,"date":951,"chapterOrder":1319,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen線性代數庫","2100-0200",{"path":1321,"stem":1322,"title":1323,"date":951,"chapterOrder":1324,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV計算機視覺庫","2100-0300",{"path":1326,"stem":1327,"title":1328,"date":951,"chapterOrder":1329,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL點雲庫","2100-0400",{"path":1331,"stem":1332,"title":1333,"date":951,"chapterOrder":1334,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus 李群李代數庫","2100-0500",{"path":1336,"stem":1337,"title":1338,"date":951,"chapterOrder":1339,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","常用庫學習","2100",{"path":1341,"stem":1342,"title":1343,"date":951,"chapterOrder":1344,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets與構建安裝","2200-0100",{"path":1346,"stem":1347,"title":1348,"date":951,"chapterOrder":1349,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","頂層CMake與公共編譯選項","2200-0200",{"path":1351,"stem":1352,"title":1353,"date":951,"chapterOrder":1354,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","src與lib模塊CMake詳解","2200-0300",{"path":1356,"stem":1357,"title":1358,"date":951,"chapterOrder":1359,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","第三方庫依賴寫法","2200-0400",{"path":1361,"stem":1362,"title":1363,"date":951,"chapterOrder":1364,"chapterDepth":57,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","模板擴展與常見問題","2200-0500",{"path":1366,"stem":1367,"title":1368,"date":951,"chapterOrder":1369,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":958},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake工程模板","2200",{"path":954,"stem":1371,"title":1372,"date":951,"chapterOrder":959,"chapterDepth":973,"docKey":953,"docRoot":954,"docTitle":955,"isWikiDoc":95,"isWikiIndex":95},"_i18n\u002Fzh-tw\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++教程",{"variants":1374},[1375,1378,1381,1384,1385],{"path":1376,"localeSlug":1377,"i18nKey":957},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","en-us",{"path":1379,"localeSlug":1380,"i18nKey":957},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","zh-hant",{"path":1382,"localeSlug":1383,"i18nKey":957},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","zh-hk",{"path":949,"localeSlug":961,"i18nKey":957},{"path":1386,"localeSlug":1387,"i18nKey":957},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","zh-cn",[1376,964,1379,964,1382,964,949,964,1386,964],1784646896430]