[{"data":1,"prerenderedAt":1533},["ShallowReactive",2],{"wiki-page-\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard":3,"wiki-doc-items-\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard":1112,"language-switcher-data-\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard":1517,"wiki-i18n-paths-\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard":1532},{"id":4,"title":5,"body":6,"canonicalPath":1094,"chapterDepth":65,"chapterOrder":1095,"date":1096,"description":47,"docI18nKey":1097,"docKey":1098,"docRoot":1099,"docTitle":1100,"extension":1101,"i18nKey":1102,"isBlogPost":1103,"isWikiDoc":84,"isWikiIndex":1103,"layout":1104,"legacyPath":1104,"locale":1105,"localeSlug":1106,"meta":1107,"navigation":84,"path":1094,"seo":1108,"sourcePath":1109,"sourceStem":1102,"stem":1110,"wikiDepth":54,"__hash__":1111},"content\u002F_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard.md","mutex 與 lock_guard",{"type":7,"value":8,"toc":1084},"minimark",[9,13,22,33,36,41,418,425,433,437,440,945,949,955,959,1008,1023,1026,1058,1061,1080],[10,11,12],"h2",{"id":12},"本節解決什麼問題",[14,15,16,17,21],"p",{},"多個線程同時修改同一個變量時，",[18,19,20],"code",{},"++counter"," 並不是一個不可分割的動作。它通常包含讀取、加一、寫回幾個步驟。兩個線程交錯執行時，就會產生數據競爭。",[14,23,24,25,28,29,32],{},"保護共享數據最常見的做法是：用 ",[18,26,27],{},"std::mutex"," 互斥鎖，加鎖後只有一個線程能進入臨界區。",[18,30,31],{},"std::lock_guard"," 是 RAII 鎖，構造時加鎖，離開作用域時自動解鎖。",[10,34,35],{"id":35},"示例代碼",[37,38,40],"h3",{"id":39},"示例-1用-mutex-和-lock_guard-保護共享計數器","示例 1：用 mutex 和 lock_guard 保護共享計數器",[42,43,48],"pre",{"className":44,"code":45,"language":46,"meta":47,"style":47},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Ciostream>\n#include \u003Cmutex>\n#include \u003Cthread>\n\nint counter = 0;\n\u002F\u002F 加锁用来保护共享数据，避免多个线程同时修改造成数据竞争。\nstd::mutex counter_mutex;\n\nvoid add_many(int times)\n{\n    for (int i = 0; i \u003C times; ++i)\n    {\n        std::lock_guard\u003Cstd::mutex> lock(counter_mutex);\n        ++counter;\n    }\n}\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    \u002F\u002F 创建子线程，让这部分代码和 main 线程并发运行。\n    std::thread t1(add_many, 100000);\n    std::thread t2(add_many, 100000);\n\n    \u002F\u002F join 会等待子线程结束，避免 main 提前退出。\n    t1.join();\n    t2.join();\n\n    std::cout \u003C\u003C \"counter = \" \u003C\u003C counter \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"expected = 200000\\n\";\n\n    return 0;\n}\n","cpp","",[18,49,50,63,71,79,86,106,113,123,128,149,155,188,194,219,228,234,240,245,256,261,267,273,294,310,315,321,333,343,348,380,398,403,413],{"__ignoreMap":47},[51,52,55,59],"span",{"class":53,"line":54},"line",1,[51,56,58],{"class":57},"szBVR","#include",[51,60,62],{"class":61},"sZZnC"," \u003Ciostream>\n",[51,64,66,68],{"class":53,"line":65},2,[51,67,58],{"class":57},[51,69,70],{"class":61}," \u003Cmutex>\n",[51,72,74,76],{"class":53,"line":73},3,[51,75,58],{"class":57},[51,77,78],{"class":61}," \u003Cthread>\n",[51,80,82],{"class":53,"line":81},4,[51,83,85],{"emptyLinePlaceholder":84},true,"\n",[51,87,89,92,96,99,103],{"class":53,"line":88},5,[51,90,91],{"class":57},"int",[51,93,95],{"class":94},"sVt8B"," counter ",[51,97,98],{"class":57},"=",[51,100,102],{"class":101},"sj4cs"," 0",[51,104,105],{"class":94},";\n",[51,107,109],{"class":53,"line":108},6,[51,110,112],{"class":111},"sJ8bj","\u002F\u002F 加锁用来保护共享数据，避免多个线程同时修改造成数据竞争。\n",[51,114,116,120],{"class":53,"line":115},7,[51,117,119],{"class":118},"sScJk","std",[51,121,122],{"class":94},"::mutex counter_mutex;\n",[51,124,126],{"class":53,"line":125},8,[51,127,85],{"emptyLinePlaceholder":84},[51,129,131,134,137,140,142,146],{"class":53,"line":130},9,[51,132,133],{"class":57},"void",[51,135,136],{"class":118}," add_many",[51,138,139],{"class":94},"(",[51,141,91],{"class":57},[51,143,145],{"class":144},"s4XuR"," times",[51,147,148],{"class":94},")\n",[51,150,152],{"class":53,"line":151},10,[51,153,154],{"class":94},"{\n",[51,156,158,161,164,166,169,171,173,176,179,182,185],{"class":53,"line":157},11,[51,159,160],{"class":57},"    for",[51,162,163],{"class":94}," (",[51,165,91],{"class":57},[51,167,168],{"class":94}," i ",[51,170,98],{"class":57},[51,172,102],{"class":101},[51,174,175],{"class":94},"; i ",[51,177,178],{"class":57},"\u003C",[51,180,181],{"class":94}," times; ",[51,183,184],{"class":57},"++",[51,186,187],{"class":94},"i)\n",[51,189,191],{"class":53,"line":190},12,[51,192,193],{"class":94},"    {\n",[51,195,197,200,203,205,207,210,213,216],{"class":53,"line":196},13,[51,198,199],{"class":118},"        std",[51,201,202],{"class":94},"::lock_guard",[51,204,178],{"class":57},[51,206,119],{"class":118},[51,208,209],{"class":94},"::mutex",[51,211,212],{"class":57},">",[51,214,215],{"class":118}," lock",[51,217,218],{"class":94},"(counter_mutex);\n",[51,220,222,225],{"class":53,"line":221},14,[51,223,224],{"class":57},"        ++",[51,226,227],{"class":94},"counter;\n",[51,229,231],{"class":53,"line":230},15,[51,232,233],{"class":94},"    }\n",[51,235,237],{"class":53,"line":236},16,[51,238,239],{"class":94},"}\n",[51,241,243],{"class":53,"line":242},17,[51,244,85],{"emptyLinePlaceholder":84},[51,246,248,250,253],{"class":53,"line":247},18,[51,249,91],{"class":57},[51,251,252],{"class":118}," main",[51,254,255],{"class":94},"()\n",[51,257,259],{"class":53,"line":258},19,[51,260,154],{"class":94},[51,262,264],{"class":53,"line":263},20,[51,265,266],{"class":111},"    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[51,268,270],{"class":53,"line":269},21,[51,271,272],{"class":111},"    \u002F\u002F 创建子线程，让这部分代码和 main 线程并发运行。\n",[51,274,276,279,282,285,288,291],{"class":53,"line":275},22,[51,277,278],{"class":118},"    std",[51,280,281],{"class":94},"::thread ",[51,283,284],{"class":118},"t1",[51,286,287],{"class":94},"(add_many, ",[51,289,290],{"class":101},"100000",[51,292,293],{"class":94},");\n",[51,295,297,299,301,304,306,308],{"class":53,"line":296},23,[51,298,278],{"class":118},[51,300,281],{"class":94},[51,302,303],{"class":118},"t2",[51,305,287],{"class":94},[51,307,290],{"class":101},[51,309,293],{"class":94},[51,311,313],{"class":53,"line":312},24,[51,314,85],{"emptyLinePlaceholder":84},[51,316,318],{"class":53,"line":317},25,[51,319,320],{"class":111},"    \u002F\u002F join 会等待子线程结束，避免 main 提前退出。\n",[51,322,324,327,330],{"class":53,"line":323},26,[51,325,326],{"class":94},"    t1.",[51,328,329],{"class":118},"join",[51,331,332],{"class":94},"();\n",[51,334,336,339,341],{"class":53,"line":335},27,[51,337,338],{"class":94},"    t2.",[51,340,329],{"class":118},[51,342,332],{"class":94},[51,344,346],{"class":53,"line":345},28,[51,347,85],{"emptyLinePlaceholder":84},[51,349,351,353,356,359,362,365,367,369,372,375,378],{"class":53,"line":350},29,[51,352,278],{"class":118},[51,354,355],{"class":94},"::cout ",[51,357,358],{"class":57},"\u003C\u003C",[51,360,361],{"class":61}," \"counter = \"",[51,363,364],{"class":57}," \u003C\u003C",[51,366,95],{"class":94},[51,368,358],{"class":57},[51,370,371],{"class":61}," \"",[51,373,374],{"class":101},"\\n",[51,376,377],{"class":61},"\"",[51,379,105],{"class":94},[51,381,383,385,387,389,392,394,396],{"class":53,"line":382},30,[51,384,278],{"class":118},[51,386,355],{"class":94},[51,388,358],{"class":57},[51,390,391],{"class":61}," \"expected = 200000",[51,393,374],{"class":101},[51,395,377],{"class":61},[51,397,105],{"class":94},[51,399,401],{"class":53,"line":400},31,[51,402,85],{"emptyLinePlaceholder":84},[51,404,406,409,411],{"class":53,"line":405},32,[51,407,408],{"class":57},"    return",[51,410,102],{"class":101},[51,412,105],{"class":94},[51,414,416],{"class":53,"line":415},33,[51,417,239],{"class":94},[14,419,420,424],{},[421,422,423],"strong",{},"運行結果","：",[42,426,431],{"className":427,"code":429,"language":430,"meta":47},[428],"language-text","counter = 200000\nexpected = 200000\n","text",[18,432,429],{"__ignoreMap":47},[37,434,436],{"id":435},"示例-2鎖的作用域要儘量小","示例 2：鎖的作用域要儘量小",[14,438,439],{},"這個例子裏，線程先在鎖外準備數據，只有更新共享總數時才加鎖。這樣另一個線程不用在無關工作上等待。",[42,441,443],{"className":44,"code":442,"language":46,"meta":47,"style":47},"#include \u003Ciostream>\n#include \u003Cmutex>\n#include \u003Cthread>\n#include \u003Cvector>\n\nint total = 0;\n\u002F\u002F 加锁用来保护共享数据，避免多个线程同时修改造成数据竞争。\nstd::mutex total_mutex;\n\nint sum_part(const std::vector\u003Cint>& data, int begin, int end)\n{\n    int local_sum = 0;\n    for (int i = begin; i \u003C end; ++i)\n    {\n        local_sum += data[i];\n    }\n    return local_sum;\n}\n\nvoid worker(const std::vector\u003Cint>& data, int begin, int end)\n{\n    int local_sum = sum_part(data, begin, end);\n\n    {\n        std::lock_guard\u003Cstd::mutex> lock(total_mutex);\n        total += local_sum;\n    }\n}\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    std::vector\u003Cint> data = {1, 2, 3, 4, 5, 6};\n\n    \u002F\u002F 创建子线程，让这部分代码和 main 线程并发运行。\n    std::thread t1(worker, std::cref(data), 0, 3);\n    std::thread t2(worker, std::cref(data), 3, 6);\n\n    \u002F\u002F join 会等待子线程结束，避免 main 提前退出。\n    t1.join();\n    t2.join();\n\n    std::cout \u003C\u003C \"total = \" \u003C\u003C total \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[18,444,445,451,457,463,470,474,487,491,498,502,552,556,570,594,598,609,613,620,624,628,669,673,686,690,694,713,722,726,730,734,742,746,750,799,804,809,840,867,872,877,886,895,900,926,931,940],{"__ignoreMap":47},[51,446,447,449],{"class":53,"line":54},[51,448,58],{"class":57},[51,450,62],{"class":61},[51,452,453,455],{"class":53,"line":65},[51,454,58],{"class":57},[51,456,70],{"class":61},[51,458,459,461],{"class":53,"line":73},[51,460,58],{"class":57},[51,462,78],{"class":61},[51,464,465,467],{"class":53,"line":81},[51,466,58],{"class":57},[51,468,469],{"class":61}," \u003Cvector>\n",[51,471,472],{"class":53,"line":88},[51,473,85],{"emptyLinePlaceholder":84},[51,475,476,478,481,483,485],{"class":53,"line":108},[51,477,91],{"class":57},[51,479,480],{"class":94}," total ",[51,482,98],{"class":57},[51,484,102],{"class":101},[51,486,105],{"class":94},[51,488,489],{"class":53,"line":115},[51,490,112],{"class":111},[51,492,493,495],{"class":53,"line":125},[51,494,119],{"class":118},[51,496,497],{"class":94},"::mutex total_mutex;\n",[51,499,500],{"class":53,"line":130},[51,501,85],{"emptyLinePlaceholder":84},[51,503,504,506,509,511,514,517,520,523,525,527,529,532,535,538,540,543,545,547,550],{"class":53,"line":151},[51,505,91],{"class":57},[51,507,508],{"class":118}," sum_part",[51,510,139],{"class":94},[51,512,513],{"class":57},"const",[51,515,516],{"class":118}," std",[51,518,519],{"class":94},"::",[51,521,522],{"class":118},"vector",[51,524,178],{"class":94},[51,526,91],{"class":57},[51,528,212],{"class":94},[51,530,531],{"class":57},"&",[51,533,534],{"class":144}," data",[51,536,537],{"class":94},", ",[51,539,91],{"class":57},[51,541,542],{"class":144}," begin",[51,544,537],{"class":94},[51,546,91],{"class":57},[51,548,549],{"class":144}," end",[51,551,148],{"class":94},[51,553,554],{"class":53,"line":157},[51,555,154],{"class":94},[51,557,558,561,564,566,568],{"class":53,"line":190},[51,559,560],{"class":57},"    int",[51,562,563],{"class":94}," local_sum ",[51,565,98],{"class":57},[51,567,102],{"class":101},[51,569,105],{"class":94},[51,571,572,574,576,578,580,582,585,587,590,592],{"class":53,"line":196},[51,573,160],{"class":57},[51,575,163],{"class":94},[51,577,91],{"class":57},[51,579,168],{"class":94},[51,581,98],{"class":57},[51,583,584],{"class":94}," begin; i ",[51,586,178],{"class":57},[51,588,589],{"class":94}," end; ",[51,591,184],{"class":57},[51,593,187],{"class":94},[51,595,596],{"class":53,"line":221},[51,597,193],{"class":94},[51,599,600,603,606],{"class":53,"line":230},[51,601,602],{"class":94},"        local_sum ",[51,604,605],{"class":57},"+=",[51,607,608],{"class":94}," data[i];\n",[51,610,611],{"class":53,"line":236},[51,612,233],{"class":94},[51,614,615,617],{"class":53,"line":242},[51,616,408],{"class":57},[51,618,619],{"class":94}," local_sum;\n",[51,621,622],{"class":53,"line":247},[51,623,239],{"class":94},[51,625,626],{"class":53,"line":258},[51,627,85],{"emptyLinePlaceholder":84},[51,629,630,632,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667],{"class":53,"line":263},[51,631,133],{"class":57},[51,633,634],{"class":118}," worker",[51,636,139],{"class":94},[51,638,513],{"class":57},[51,640,516],{"class":118},[51,642,519],{"class":94},[51,644,522],{"class":118},[51,646,178],{"class":94},[51,648,91],{"class":57},[51,650,212],{"class":94},[51,652,531],{"class":57},[51,654,534],{"class":144},[51,656,537],{"class":94},[51,658,91],{"class":57},[51,660,542],{"class":144},[51,662,537],{"class":94},[51,664,91],{"class":57},[51,666,549],{"class":144},[51,668,148],{"class":94},[51,670,671],{"class":53,"line":269},[51,672,154],{"class":94},[51,674,675,677,679,681,683],{"class":53,"line":275},[51,676,560],{"class":57},[51,678,563],{"class":94},[51,680,98],{"class":57},[51,682,508],{"class":118},[51,684,685],{"class":94},"(data, begin, end);\n",[51,687,688],{"class":53,"line":296},[51,689,85],{"emptyLinePlaceholder":84},[51,691,692],{"class":53,"line":312},[51,693,193],{"class":94},[51,695,696,698,700,702,704,706,708,710],{"class":53,"line":317},[51,697,199],{"class":118},[51,699,202],{"class":94},[51,701,178],{"class":57},[51,703,119],{"class":118},[51,705,209],{"class":94},[51,707,212],{"class":57},[51,709,215],{"class":118},[51,711,712],{"class":94},"(total_mutex);\n",[51,714,715,718,720],{"class":53,"line":323},[51,716,717],{"class":94},"        total ",[51,719,605],{"class":57},[51,721,619],{"class":94},[51,723,724],{"class":53,"line":335},[51,725,233],{"class":94},[51,727,728],{"class":53,"line":345},[51,729,239],{"class":94},[51,731,732],{"class":53,"line":350},[51,733,85],{"emptyLinePlaceholder":84},[51,735,736,738,740],{"class":53,"line":382},[51,737,91],{"class":57},[51,739,252],{"class":118},[51,741,255],{"class":94},[51,743,744],{"class":53,"line":400},[51,745,154],{"class":94},[51,747,748],{"class":53,"line":405},[51,749,266],{"class":111},[51,751,752,754,757,760,763,765,768,771,773,776,778,781,783,786,788,791,793,796],{"class":53,"line":415},[51,753,278],{"class":118},[51,755,756],{"class":94},"::vector",[51,758,759],{"class":57},"\u003Cint>",[51,761,762],{"class":94}," data ",[51,764,98],{"class":57},[51,766,767],{"class":94}," {",[51,769,770],{"class":101},"1",[51,772,537],{"class":94},[51,774,775],{"class":101},"2",[51,777,537],{"class":94},[51,779,780],{"class":101},"3",[51,782,537],{"class":94},[51,784,785],{"class":101},"4",[51,787,537],{"class":94},[51,789,790],{"class":101},"5",[51,792,537],{"class":94},[51,794,795],{"class":101},"6",[51,797,798],{"class":94},"};\n",[51,800,802],{"class":53,"line":801},34,[51,803,85],{"emptyLinePlaceholder":84},[51,805,807],{"class":53,"line":806},35,[51,808,272],{"class":111},[51,810,812,814,816,818,821,823,825,828,831,834,836,838],{"class":53,"line":811},36,[51,813,278],{"class":118},[51,815,281],{"class":94},[51,817,284],{"class":118},[51,819,820],{"class":94},"(worker, ",[51,822,119],{"class":118},[51,824,519],{"class":94},[51,826,827],{"class":118},"cref",[51,829,830],{"class":94},"(data), ",[51,832,833],{"class":101},"0",[51,835,537],{"class":94},[51,837,780],{"class":101},[51,839,293],{"class":94},[51,841,843,845,847,849,851,853,855,857,859,861,863,865],{"class":53,"line":842},37,[51,844,278],{"class":118},[51,846,281],{"class":94},[51,848,303],{"class":118},[51,850,820],{"class":94},[51,852,119],{"class":118},[51,854,519],{"class":94},[51,856,827],{"class":118},[51,858,830],{"class":94},[51,860,780],{"class":101},[51,862,537],{"class":94},[51,864,795],{"class":101},[51,866,293],{"class":94},[51,868,870],{"class":53,"line":869},38,[51,871,85],{"emptyLinePlaceholder":84},[51,873,875],{"class":53,"line":874},39,[51,876,320],{"class":111},[51,878,880,882,884],{"class":53,"line":879},40,[51,881,326],{"class":94},[51,883,329],{"class":118},[51,885,332],{"class":94},[51,887,889,891,893],{"class":53,"line":888},41,[51,890,338],{"class":94},[51,892,329],{"class":118},[51,894,332],{"class":94},[51,896,898],{"class":53,"line":897},42,[51,899,85],{"emptyLinePlaceholder":84},[51,901,903,905,907,909,912,914,916,918,920,922,924],{"class":53,"line":902},43,[51,904,278],{"class":118},[51,906,355],{"class":94},[51,908,358],{"class":57},[51,910,911],{"class":61}," \"total = \"",[51,913,364],{"class":57},[51,915,480],{"class":94},[51,917,358],{"class":57},[51,919,371],{"class":61},[51,921,374],{"class":101},[51,923,377],{"class":61},[51,925,105],{"class":94},[51,927,929],{"class":53,"line":928},44,[51,930,85],{"emptyLinePlaceholder":84},[51,932,934,936,938],{"class":53,"line":933},45,[51,935,408],{"class":57},[51,937,102],{"class":101},[51,939,105],{"class":94},[51,941,943],{"class":53,"line":942},46,[51,944,239],{"class":94},[14,946,947,424],{},[421,948,423],{},[42,950,953],{"className":951,"code":952,"language":430,"meta":47},[428],"total = 21\n",[18,954,952],{"__ignoreMap":47},[10,956,958],{"id":957},"lock_guard-和-unique_lock-的區別","lock_guard 和 unique_lock 的區別",[960,961,962,979],"table",{},[963,964,965],"thead",{},[966,967,968,973,976],"tr",{},[969,970,972],"th",{"align":971},"left","鎖類型",[969,974,975],{"align":971},"特點",[969,977,978],{"align":971},"常見用途",[980,981,982,995],"tbody",{},[966,983,984,989,992],{},[985,986,987],"td",{"align":971},[18,988,31],{},[985,990,991],{"align":971},"簡單，構造加鎖，析構解鎖，不能手動解鎖",[985,993,994],{"align":971},"保護一小段共享數據訪問",[966,996,997,1002,1005],{},[985,998,999],{"align":971},[18,1000,1001],{},"std::unique_lock",[985,1003,1004],{"align":971},"可延遲加鎖、手動解鎖、轉移所有權",[985,1006,1007],{"align":971},"條件變量、需要提前釋放鎖的場景",[14,1009,1010,1011,1014,1015,1018,1019,1022],{},"初學時優先用 ",[18,1012,1013],{},"lock_guard","。只有需要配合 ",[18,1016,1017],{},"condition_variable"," 或者需要更靈活地控制加鎖時，再用 ",[18,1020,1021],{},"unique_lock","。",[10,1024,1025],{"id":1025},"常見錯誤",[1027,1028,1029,1041,1052,1055],"ol",{},[1030,1031,1032,1033,1036,1037,1040],"li",{},"多個線程同時修改共享數據，卻沒有用 ",[18,1034,1035],{},"mutex"," 或 ",[18,1038,1039],{},"atomic"," 保護。",[1030,1042,1043,1044,1047,1048,1051],{},"手動 ",[18,1045,1046],{},"lock()"," 後忘記 ",[18,1049,1050],{},"unlock()","，或者中途異常導致無法解鎖。",[1030,1053,1054],{},"持有鎖時做耗時操作，比如睡眠、網絡請求、文件 IO。",[1030,1056,1057],{},"鎖保護的範圍太小，讀寫共享數據的某些路徑漏掉了鎖。",[10,1059,1060],{"id":1060},"小結",[1062,1063,1064,1067,1072,1077],"ul",{},[1030,1065,1066],{},"共享數據需要同步保護。",[1030,1068,1069,1071],{},[18,1070,27],{}," 提供互斥訪問。",[1030,1073,1074,1076],{},[18,1075,31],{}," 是 RAII 鎖，構造加鎖，析構解鎖。",[1030,1078,1079],{},"鎖的作用域越小越好，但必須完整覆蓋共享數據訪問。",[1081,1082,1083],"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 .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 .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 .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":47,"searchDepth":65,"depth":65,"links":1085},[1086,1087,1091,1092,1093],{"id":12,"depth":65,"text":12},{"id":35,"depth":65,"text":35,"children":1088},[1089,1090],{"id":39,"depth":73,"text":40},{"id":435,"depth":73,"text":436},{"id":957,"depth":65,"text":958},{"id":1025,"depth":65,"text":1025},{"id":1060,"depth":65,"text":1060},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","2000-1900-0200","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-1900-0200-mutex-lock-guard",false,null,"zh-Hant","zh-hant",{},{"title":5,"description":47},"\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","kB2f_PN9znZDpniDrJBs_kgORN2nRjZS_Ez2ai2yKgk",[1113,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,1259,1264,1269,1274,1279,1284,1289,1294,1299,1304,1309,1314,1319,1324,1329,1334,1339,1344,1349,1354,1359,1364,1369,1374,1379,1384,1389,1394,1395,1400,1404,1409,1414,1419,1424,1429,1434,1439,1444,1449,1454,1459,1464,1469,1474,1479,1484,1489,1494,1499,1504,1509,1514],{"path":1114,"stem":1115,"title":1116,"date":1096,"chapterOrder":1117,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1120,"stem":1121,"title":1122,"date":1096,"chapterOrder":1123,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1125,"stem":1126,"title":1127,"date":1096,"chapterOrder":1128,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1130,"stem":1131,"title":1132,"date":1096,"chapterOrder":1133,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1135,"stem":1136,"title":1137,"date":1096,"chapterOrder":1138,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","運算符","0500",{"path":1140,"stem":1141,"title":1142,"date":1096,"chapterOrder":1143,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1145,"stem":1146,"title":1147,"date":1096,"chapterOrder":1148,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","數組","0700",{"path":1150,"stem":1151,"title":1152,"date":1096,"chapterOrder":1153,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1155,"stem":1156,"title":1157,"date":1096,"chapterOrder":1158,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","指針","0900",{"path":1160,"stem":1161,"title":1162,"date":1096,"chapterOrder":1163,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1165,"stem":1166,"title":1167,"date":1096,"chapterOrder":1168,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1170,"stem":1171,"title":1172,"date":1096,"chapterOrder":1173,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","引用","1200",{"path":1175,"stem":1176,"title":1177,"date":1096,"chapterOrder":1178,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","函數提高與命名空間","1300",{"path":1180,"stem":1181,"title":1182,"date":1096,"chapterOrder":1183,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1185,"stem":1186,"title":1187,"date":1096,"chapterOrder":1188,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1190,"stem":1191,"title":1192,"date":1096,"chapterOrder":1193,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1195,"stem":1196,"title":1197,"date":1096,"chapterOrder":1198,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1200,"stem":1201,"title":1202,"date":1096,"chapterOrder":1203,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1205,"stem":1206,"title":1207,"date":1096,"chapterOrder":1208,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1210,"stem":1211,"title":1212,"date":1096,"chapterOrder":1213,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1215,"stem":1216,"title":1217,"date":1096,"chapterOrder":1218,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1220,"stem":1221,"title":1222,"date":1096,"chapterOrder":1223,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1225,"stem":1226,"title":1227,"date":1096,"chapterOrder":1228,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","模板","1700",{"path":1230,"stem":1231,"title":1232,"date":1096,"chapterOrder":1233,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1235,"stem":1236,"title":1237,"date":1096,"chapterOrder":1238,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1240,"stem":1241,"title":1242,"date":1096,"chapterOrder":1243,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1245,"stem":1246,"title":1247,"date":1096,"chapterOrder":1248,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1250,"stem":1251,"title":1252,"date":1096,"chapterOrder":1253,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1255,"stem":1256,"title":1257,"date":1096,"chapterOrder":1258,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1260,"stem":1261,"title":1262,"date":1096,"chapterOrder":1263,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1265,"stem":1266,"title":1267,"date":1096,"chapterOrder":1268,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1270,"stem":1271,"title":1272,"date":1096,"chapterOrder":1273,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1275,"stem":1276,"title":1277,"date":1096,"chapterOrder":1278,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1280,"stem":1281,"title":1282,"date":1096,"chapterOrder":1283,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1285,"stem":1286,"title":1287,"date":1096,"chapterOrder":1288,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1290,"stem":1291,"title":1292,"date":1096,"chapterOrder":1293,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1295,"stem":1296,"title":1297,"date":1096,"chapterOrder":1298,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1300,"stem":1301,"title":1302,"date":1096,"chapterOrder":1303,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1305,"stem":1306,"title":1307,"date":1096,"chapterOrder":1308,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1310,"stem":1311,"title":1312,"date":1096,"chapterOrder":1313,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1315,"stem":1316,"title":1317,"date":1096,"chapterOrder":1318,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1320,"stem":1321,"title":1322,"date":1096,"chapterOrder":1323,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1325,"stem":1326,"title":1327,"date":1096,"chapterOrder":1328,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1330,"stem":1331,"title":1332,"date":1096,"chapterOrder":1333,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1335,"stem":1336,"title":1337,"date":1096,"chapterOrder":1338,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1340,"stem":1341,"title":1342,"date":1096,"chapterOrder":1343,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1345,"stem":1346,"title":1347,"date":1096,"chapterOrder":1348,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1350,"stem":1351,"title":1352,"date":1096,"chapterOrder":1353,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1355,"stem":1356,"title":1357,"date":1096,"chapterOrder":1358,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1360,"stem":1361,"title":1362,"date":1096,"chapterOrder":1363,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1365,"stem":1366,"title":1367,"date":1096,"chapterOrder":1368,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1370,"stem":1371,"title":1372,"date":1096,"chapterOrder":1373,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1375,"stem":1376,"title":1377,"date":1096,"chapterOrder":1378,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":1380,"stem":1381,"title":1382,"date":1096,"chapterOrder":1383,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1385,"stem":1386,"title":1387,"date":1096,"chapterOrder":1388,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1390,"stem":1391,"title":1392,"date":1096,"chapterOrder":1393,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1094,"stem":1110,"title":5,"date":1096,"chapterOrder":1095,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},{"path":1396,"stem":1397,"title":1398,"date":1096,"chapterOrder":1399,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1401,"stem":1402,"title":1017,"date":1096,"chapterOrder":1403,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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","2000-1900-0400",{"path":1405,"stem":1406,"title":1407,"date":1096,"chapterOrder":1408,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1410,"stem":1411,"title":1412,"date":1096,"chapterOrder":1413,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1415,"stem":1416,"title":1417,"date":1096,"chapterOrder":1418,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1420,"stem":1421,"title":1422,"date":1096,"chapterOrder":1423,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1425,"stem":1426,"title":1427,"date":1096,"chapterOrder":1428,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1430,"stem":1431,"title":1432,"date":1096,"chapterOrder":1433,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1435,"stem":1436,"title":1437,"date":1096,"chapterOrder":1438,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1440,"stem":1441,"title":1442,"date":1096,"chapterOrder":1443,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1445,"stem":1446,"title":1447,"date":1096,"chapterOrder":1448,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1450,"stem":1451,"title":1452,"date":1096,"chapterOrder":1453,"chapterDepth":65,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1455,"stem":1456,"title":1457,"date":1096,"chapterOrder":1458,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1460,"stem":1461,"title":1462,"date":1096,"chapterOrder":1463,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1465,"stem":1466,"title":1467,"date":1096,"chapterOrder":1468,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1470,"stem":1471,"title":1472,"date":1096,"chapterOrder":1473,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1475,"stem":1476,"title":1477,"date":1096,"chapterOrder":1478,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1480,"stem":1481,"title":1482,"date":1096,"chapterOrder":1483,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","常用庫學習","2100",{"path":1485,"stem":1486,"title":1487,"date":1096,"chapterOrder":1488,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1490,"stem":1491,"title":1492,"date":1096,"chapterOrder":1493,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1495,"stem":1496,"title":1497,"date":1096,"chapterOrder":1498,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1500,"stem":1501,"title":1502,"date":1096,"chapterOrder":1503,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1505,"stem":1506,"title":1507,"date":1096,"chapterOrder":1508,"chapterDepth":54,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1510,"stem":1511,"title":1512,"date":1096,"chapterOrder":1513,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":1103},"\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":1099,"stem":1515,"title":1516,"date":1096,"chapterOrder":1104,"chapterDepth":1118,"docKey":1098,"docRoot":1099,"docTitle":1100,"isWikiDoc":84,"isWikiIndex":84},"_i18n\u002Fzh-hant\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++教程",{"variants":1518},[1519,1522,1523,1526,1529],{"path":1520,"localeSlug":1521,"i18nKey":1102},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","en-us",{"path":1094,"localeSlug":1106,"i18nKey":1102},{"path":1524,"localeSlug":1525,"i18nKey":1102},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","zh-hk",{"path":1527,"localeSlug":1528,"i18nKey":1102},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","zh-tw",{"path":1530,"localeSlug":1531,"i18nKey":1102},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","zh-cn",[1520,1109,1094,1109,1524,1109,1527,1109,1530,1109],1784646814855]