[{"data":1,"prerenderedAt":3236},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono":3,"wiki-doc-items-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono":2808,"language-switcher-data-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono":3220,"wiki-i18n-paths-/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono":3235},{"id":4,"title":5,"body":6,"canonicalPath":2790,"chapter":2791,"chapterSort":2792,"date":2793,"description":104,"docI18nKey":2794,"docKey":2795,"docRoot":2796,"docTitle":2797,"extension":2798,"i18nKey":2799,"isBlogPost":2800,"isWikiDoc":166,"isWikiIndex":2800,"layout":2801,"legacyPath":2802,"locale":2803,"localeSlug":2804,"meta":2805,"navigation":166,"path":2790,"seo":2806,"sourcePath":2802,"sourceStem":2799,"stem":2799,"wikiDepth":111,"__hash__":2807},"content/wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono.md","std::chrono",{"type":7,"value":8,"toc":2766},"minimark",[9,13,32,42,45,50,88,92,95,98,132,135,473,476,537,540,545,855,861,869,873,1205,1210,1216,1220,1707,1712,1718,1722,2034,2039,2045,2047,2050,2053,2176,2179,2244,2252,2256,2457,2462,2468,2474,2477,2485,2508,2518,2523,2547,2552,2561,2586,2592,2597,2627,2638,2641,2695,2698,2739,2742,2762],[10,11,12],"h2",{"id":12},"本节解决什么问题",[14,15,16,17,21,22,21,25,21,28,31],"p",{},"在 C 语言中，处理时间用 ",[18,19,20],"code",{},"time()","、",[18,23,24],{},"clock()",[18,26,27],{},"sleep()",[18,29,30],{},"gettimeofday()"," 等函数，它们使用不同的单位和类型（秒、毫秒、微秒...），容易搞混，精度也不够。",[14,33,34,36,37,41],{},[18,35,5],{}," 是 C++11 引入的",[38,39,40],"strong",{},"类型安全的时间库","，把\"时间点\"、\"时长\"、\"时钟\"概念清晰地分开，单位在类型系统中自动管理，不需要手动换算。",[10,43,44],{"id":44},"这个特性是什么",[14,46,47,49],{},[18,48,5],{}," 提供了三个核心概念：",[51,52,53,63,72],"ul",{},[54,55,56,62],"li",{},[38,57,58,59],{},"时长 ",[18,60,61],{},"duration","：一段时间长度，如 5 秒、10 毫秒。",[54,64,65,71],{},[38,66,67,68],{},"时间点 ",[18,69,70],{},"time_point","：某个时刻，如 2026-06-02 12:00:00。",[54,73,74,80,81,21,84,87],{},[38,75,76,77],{},"时钟 ",[18,78,79],{},"clock","：获取当前时间的工具，如 ",[18,82,83],{},"system_clock",[18,85,86],{},"steady_clock","。",[10,89,91],{"id":90},"c-标准版本","C++ 标准版本",[14,93,94],{},"C++11（基础），C++20 增加了日历、时区等。",[10,96,97],{"id":97},"需要的头文件",[99,100,105],"pre",{"className":101,"code":102,"language":103,"meta":104,"style":104},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Cchrono>\n#include \u003Cthread>  // for std::this_thread::sleep_for\n","cpp","",[18,106,107,120],{"__ignoreMap":104},[108,109,112,116],"span",{"class":110,"line":111},"line",1,[108,113,115],{"class":114},"szBVR","#include",[108,117,119],{"class":118},"sZZnC"," \u003Cchrono>\n",[108,121,123,125,128],{"class":110,"line":122},2,[108,124,115],{"class":114},[108,126,127],{"class":118}," \u003Cthread>",[108,129,131],{"class":130},"sJ8bj","  // for std::this_thread::sleep_for\n",[10,133,134],{"id":134},"基本语法",[99,136,138],{"className":101,"code":137,"language":103,"meta":104,"style":104},"using namespace std::chrono;\n\n// 时长\nauto t1 = 5s;           // 5 秒\nauto t2 = 100ms;        // 100 毫秒\nauto t3 = 50us;         // 50 微秒\nauto t4 = 10ns;         // 10 纳秒\nauto t5 = 1min;         // 1 分钟（C++20）\nauto t6 = 2h;           // 2 小时（C++20）\n\n// 时间点\nauto now = std::chrono::system_clock::now();  // 当前时间（系统时钟）\nauto now2 = std::chrono::steady_clock::now(); // 单调时钟（不会往回跳）\n\n// 时长转换\nauto sec = std::chrono::duration_cast\u003Cstd::chrono::seconds>(100ms);  // 0s（截断）\n\n// 休眠\nstd::this_thread::sleep_for(500ms);\n",[18,139,140,162,168,174,199,220,241,262,283,304,309,315,346,375,380,386,436,441,447],{"__ignoreMap":104},[108,141,142,145,148,152,156,159],{"class":110,"line":111},[108,143,144],{"class":114},"using",[108,146,147],{"class":114}," namespace",[108,149,151],{"class":150},"sScJk"," std",[108,153,155],{"class":154},"sVt8B","::",[108,157,158],{"class":150},"chrono",[108,160,161],{"class":154},";\n",[108,163,164],{"class":110,"line":122},[108,165,167],{"emptyLinePlaceholder":166},true,"\n",[108,169,171],{"class":110,"line":170},3,[108,172,173],{"class":130},"// 时长\n",[108,175,177,180,183,186,190,193,196],{"class":110,"line":176},4,[108,178,179],{"class":114},"auto",[108,181,182],{"class":154}," t1 ",[108,184,185],{"class":114},"=",[108,187,189],{"class":188},"sj4cs"," 5",[108,191,192],{"class":114},"s",[108,194,195],{"class":154},";",[108,197,198],{"class":130},"           // 5 秒\n",[108,200,202,204,207,209,212,215,217],{"class":110,"line":201},5,[108,203,179],{"class":114},[108,205,206],{"class":154}," t2 ",[108,208,185],{"class":114},[108,210,211],{"class":188}," 100",[108,213,214],{"class":114},"ms",[108,216,195],{"class":154},[108,218,219],{"class":130},"        // 100 毫秒\n",[108,221,223,225,228,230,233,236,238],{"class":110,"line":222},6,[108,224,179],{"class":114},[108,226,227],{"class":154}," t3 ",[108,229,185],{"class":114},[108,231,232],{"class":188}," 50",[108,234,235],{"class":114},"us",[108,237,195],{"class":154},[108,239,240],{"class":130},"         // 50 微秒\n",[108,242,244,246,249,251,254,257,259],{"class":110,"line":243},7,[108,245,179],{"class":114},[108,247,248],{"class":154}," t4 ",[108,250,185],{"class":114},[108,252,253],{"class":188}," 10",[108,255,256],{"class":114},"ns",[108,258,195],{"class":154},[108,260,261],{"class":130},"         // 10 纳秒\n",[108,263,265,267,270,272,275,278,280],{"class":110,"line":264},8,[108,266,179],{"class":114},[108,268,269],{"class":154}," t5 ",[108,271,185],{"class":114},[108,273,274],{"class":188}," 1",[108,276,277],{"class":114},"min",[108,279,195],{"class":154},[108,281,282],{"class":130},"         // 1 分钟（C++20）\n",[108,284,286,288,291,293,296,299,301],{"class":110,"line":285},9,[108,287,179],{"class":114},[108,289,290],{"class":154}," t6 ",[108,292,185],{"class":114},[108,294,295],{"class":188}," 2",[108,297,298],{"class":114},"h",[108,300,195],{"class":154},[108,302,303],{"class":130},"           // 2 小时（C++20）\n",[108,305,307],{"class":110,"line":306},10,[108,308,167],{"emptyLinePlaceholder":166},[108,310,312],{"class":110,"line":311},11,[108,313,314],{"class":130},"// 时间点\n",[108,316,318,320,323,325,327,329,331,333,335,337,340,343],{"class":110,"line":317},12,[108,319,179],{"class":114},[108,321,322],{"class":154}," now ",[108,324,185],{"class":114},[108,326,151],{"class":150},[108,328,155],{"class":154},[108,330,158],{"class":150},[108,332,155],{"class":154},[108,334,83],{"class":150},[108,336,155],{"class":154},[108,338,339],{"class":150},"now",[108,341,342],{"class":154},"();",[108,344,345],{"class":130},"  // 当前时间（系统时钟）\n",[108,347,349,351,354,356,358,360,362,364,366,368,370,372],{"class":110,"line":348},13,[108,350,179],{"class":114},[108,352,353],{"class":154}," now2 ",[108,355,185],{"class":114},[108,357,151],{"class":150},[108,359,155],{"class":154},[108,361,158],{"class":150},[108,363,155],{"class":154},[108,365,86],{"class":150},[108,367,155],{"class":154},[108,369,339],{"class":150},[108,371,342],{"class":154},[108,373,374],{"class":130}," // 单调时钟（不会往回跳）\n",[108,376,378],{"class":110,"line":377},14,[108,379,167],{"emptyLinePlaceholder":166},[108,381,383],{"class":110,"line":382},15,[108,384,385],{"class":130},"// 时长转换\n",[108,387,389,391,394,396,398,400,402,404,407,410,413,415,417,419,422,425,428,430,433],{"class":110,"line":388},16,[108,390,179],{"class":114},[108,392,393],{"class":154}," sec ",[108,395,185],{"class":114},[108,397,151],{"class":150},[108,399,155],{"class":154},[108,401,158],{"class":150},[108,403,155],{"class":154},[108,405,406],{"class":150},"duration_cast",[108,408,409],{"class":154},"\u003C",[108,411,412],{"class":150},"std",[108,414,155],{"class":154},[108,416,158],{"class":150},[108,418,155],{"class":154},[108,420,421],{"class":150},"seconds",[108,423,424],{"class":154},">(",[108,426,427],{"class":188},"100",[108,429,214],{"class":114},[108,431,432],{"class":154},");",[108,434,435],{"class":130},"  // 0s（截断）\n",[108,437,439],{"class":110,"line":438},17,[108,440,167],{"emptyLinePlaceholder":166},[108,442,444],{"class":110,"line":443},18,[108,445,446],{"class":130},"// 休眠\n",[108,448,450,452,454,457,459,462,465,468,470],{"class":110,"line":449},19,[108,451,412],{"class":150},[108,453,155],{"class":154},[108,455,456],{"class":150},"this_thread",[108,458,155],{"class":154},[108,460,461],{"class":150},"sleep_for",[108,463,464],{"class":154},"(",[108,466,467],{"class":188},"500",[108,469,214],{"class":114},[108,471,472],{"class":154},");\n",[10,474,475],{"id":475},"常用时钟对比",[477,478,479,496],"table",{},[480,481,482],"thead",{},[483,484,485,490,493],"tr",{},[486,487,489],"th",{"align":488},"left","时钟",[486,491,492],{"align":488},"特点",[486,494,495],{"align":488},"用途",[497,498,499,512,524],"tbody",{},[483,500,501,506,509],{},[502,503,504],"td",{"align":488},[18,505,83],{},[502,507,508],{"align":488},"系统时间，可转换为日历时间",[502,510,511],{"align":488},"显示时间，时间戳",[483,513,514,518,521],{},[502,515,516],{"align":488},[18,517,86],{},[502,519,520],{"align":488},"单调递增，不会往回跳",[502,522,523],{"align":488},"测量耗时（最常用）",[483,525,526,531,534],{},[502,527,528],{"align":488},[18,529,530],{},"high_resolution_clock",[502,532,533],{"align":488},"最高精度时钟",[502,535,536],{"align":488},"需要最高精度的计时",[10,538,539],{"id":539},"示例代码",[541,542,544],"h3",{"id":543},"示例-1测量一段代码的执行时间","示例 1：测量一段代码的执行时间",[99,546,548],{"className":101,"code":547,"language":103,"meta":104,"style":104},"#include \u003Ciostream>\n#include \u003Cchrono>\n#include \u003Cthread>  // for sleep\n\nint main()\n{\n    using namespace std::chrono;\n\n    // 记录开始时间\n    auto start = steady_clock::now();\n\n    // 模拟耗时操作\n    std::this_thread::sleep_for(500ms);\n\n    // 记录结束时间\n    auto end = steady_clock::now();\n\n    // 计算耗时\n    auto elapsed = end - start;\n    auto elapsed_ms = duration_cast\u003Cmilliseconds>(elapsed);\n    auto elapsed_us = duration_cast\u003Cmicroseconds>(elapsed);\n\n    std::cout \u003C\u003C \"Elapsed: \" \u003C\u003C elapsed_ms.count() \u003C\u003C \" ms\\n\";\n    std::cout \u003C\u003C \"Elapsed: \" \u003C\u003C elapsed_us.count() \u003C\u003C \" us\\n\";\n\n    return 0;\n}\n",[18,549,550,557,563,572,576,587,592,607,611,616,636,640,645,666,670,675,692,696,701,718,739,758,763,802,833,838,849],{"__ignoreMap":104},[108,551,552,554],{"class":110,"line":111},[108,553,115],{"class":114},[108,555,556],{"class":118}," \u003Ciostream>\n",[108,558,559,561],{"class":110,"line":122},[108,560,115],{"class":114},[108,562,119],{"class":118},[108,564,565,567,569],{"class":110,"line":170},[108,566,115],{"class":114},[108,568,127],{"class":118},[108,570,571],{"class":130},"  // for sleep\n",[108,573,574],{"class":110,"line":176},[108,575,167],{"emptyLinePlaceholder":166},[108,577,578,581,584],{"class":110,"line":201},[108,579,580],{"class":114},"int",[108,582,583],{"class":150}," main",[108,585,586],{"class":154},"()\n",[108,588,589],{"class":110,"line":222},[108,590,591],{"class":154},"{\n",[108,593,594,597,599,601,603,605],{"class":110,"line":243},[108,595,596],{"class":114},"    using",[108,598,147],{"class":114},[108,600,151],{"class":150},[108,602,155],{"class":154},[108,604,158],{"class":150},[108,606,161],{"class":154},[108,608,609],{"class":110,"line":264},[108,610,167],{"emptyLinePlaceholder":166},[108,612,613],{"class":110,"line":285},[108,614,615],{"class":130},"    // 记录开始时间\n",[108,617,618,621,624,626,629,631,633],{"class":110,"line":306},[108,619,620],{"class":114},"    auto",[108,622,623],{"class":154}," start ",[108,625,185],{"class":114},[108,627,628],{"class":150}," steady_clock",[108,630,155],{"class":154},[108,632,339],{"class":150},[108,634,635],{"class":154},"();\n",[108,637,638],{"class":110,"line":311},[108,639,167],{"emptyLinePlaceholder":166},[108,641,642],{"class":110,"line":317},[108,643,644],{"class":130},"    // 模拟耗时操作\n",[108,646,647,650,652,654,656,658,660,662,664],{"class":110,"line":348},[108,648,649],{"class":150},"    std",[108,651,155],{"class":154},[108,653,456],{"class":150},[108,655,155],{"class":154},[108,657,461],{"class":150},[108,659,464],{"class":154},[108,661,467],{"class":188},[108,663,214],{"class":114},[108,665,472],{"class":154},[108,667,668],{"class":110,"line":377},[108,669,167],{"emptyLinePlaceholder":166},[108,671,672],{"class":110,"line":382},[108,673,674],{"class":130},"    // 记录结束时间\n",[108,676,677,679,682,684,686,688,690],{"class":110,"line":388},[108,678,620],{"class":114},[108,680,681],{"class":154}," end ",[108,683,185],{"class":114},[108,685,628],{"class":150},[108,687,155],{"class":154},[108,689,339],{"class":150},[108,691,635],{"class":154},[108,693,694],{"class":110,"line":438},[108,695,167],{"emptyLinePlaceholder":166},[108,697,698],{"class":110,"line":443},[108,699,700],{"class":130},"    // 计算耗时\n",[108,702,703,705,708,710,712,715],{"class":110,"line":449},[108,704,620],{"class":114},[108,706,707],{"class":154}," elapsed ",[108,709,185],{"class":114},[108,711,681],{"class":154},[108,713,714],{"class":114},"-",[108,716,717],{"class":154}," start;\n",[108,719,721,723,726,728,731,733,736],{"class":110,"line":720},20,[108,722,620],{"class":114},[108,724,725],{"class":154}," elapsed_ms ",[108,727,185],{"class":114},[108,729,730],{"class":150}," duration_cast",[108,732,409],{"class":154},[108,734,735],{"class":150},"milliseconds",[108,737,738],{"class":154},">(elapsed);\n",[108,740,742,744,747,749,751,753,756],{"class":110,"line":741},21,[108,743,620],{"class":114},[108,745,746],{"class":154}," elapsed_us ",[108,748,185],{"class":114},[108,750,730],{"class":150},[108,752,409],{"class":154},[108,754,755],{"class":150},"microseconds",[108,757,738],{"class":154},[108,759,761],{"class":110,"line":760},22,[108,762,167],{"emptyLinePlaceholder":166},[108,764,766,768,771,774,777,780,783,786,789,791,794,797,800],{"class":110,"line":765},23,[108,767,649],{"class":150},[108,769,770],{"class":154},"::cout ",[108,772,773],{"class":114},"\u003C\u003C",[108,775,776],{"class":118}," \"Elapsed: \"",[108,778,779],{"class":114}," \u003C\u003C",[108,781,782],{"class":154}," elapsed_ms.",[108,784,785],{"class":150},"count",[108,787,788],{"class":154},"() ",[108,790,773],{"class":114},[108,792,793],{"class":118}," \" ms",[108,795,796],{"class":188},"\\n",[108,798,799],{"class":118},"\"",[108,801,161],{"class":154},[108,803,805,807,809,811,813,815,818,820,822,824,827,829,831],{"class":110,"line":804},24,[108,806,649],{"class":150},[108,808,770],{"class":154},[108,810,773],{"class":114},[108,812,776],{"class":118},[108,814,779],{"class":114},[108,816,817],{"class":154}," elapsed_us.",[108,819,785],{"class":150},[108,821,788],{"class":154},[108,823,773],{"class":114},[108,825,826],{"class":118}," \" us",[108,828,796],{"class":188},[108,830,799],{"class":118},[108,832,161],{"class":154},[108,834,836],{"class":110,"line":835},25,[108,837,167],{"emptyLinePlaceholder":166},[108,839,841,844,847],{"class":110,"line":840},26,[108,842,843],{"class":114},"    return",[108,845,846],{"class":188}," 0",[108,848,161],{"class":154},[108,850,852],{"class":110,"line":851},27,[108,853,854],{"class":154},"}\n",[14,856,857,860],{},[38,858,859],{},"运行结果","（大约）：",[99,862,867],{"className":863,"code":865,"language":866},[864],"language-text","Elapsed: 500 ms\nElapsed: 500000 us\n","text",[18,868,865],{"__ignoreMap":104},[541,870,872],{"id":871},"示例-2在示例-1-基础上不同时间单位的使用和转换","示例 2：在示例 1 基础上，不同时间单位的使用和转换",[99,874,876],{"className":101,"code":875,"language":103,"meta":104,"style":104},"#include \u003Ciostream>\n#include \u003Cchrono>\n\nint main()\n{\n    using namespace std::chrono;\n\n    // 不同单位\n    auto s = 1s;         // 1 秒\n    auto ms = 100ms;     // 100 毫秒\n    auto us = 500us;     // 500 微秒\n\n    // 时长可以相加\n    auto total = s + ms + us;\n    std::cout \u003C\u003C \"total in us: \" \u003C\u003C duration_cast\u003Cmicroseconds>(total).count() \u003C\u003C \" us\\n\";\n\n    // 秒到毫秒的转换\n    auto two_seconds = 2s;\n    auto as_ms = duration_cast\u003Cmilliseconds>(two_seconds);\n    std::cout \u003C\u003C \"2s = \" \u003C\u003C as_ms.count() \u003C\u003C \" ms\\n\";\n\n    // 毫秒到秒的转换（会截断）\n    auto ms_to_sec = duration_cast\u003Cseconds>(1500ms);\n    std::cout \u003C\u003C \"1500ms = \" \u003C\u003C ms_to_sec.count() \u003C\u003C \" s\\n\";  // 1 秒\n\n    return 0;\n}\n",[18,877,878,884,890,894,902,906,920,924,929,947,965,984,988,993,1014,1050,1054,1059,1074,1092,1122,1126,1131,1155,1189,1193,1201],{"__ignoreMap":104},[108,879,880,882],{"class":110,"line":111},[108,881,115],{"class":114},[108,883,556],{"class":118},[108,885,886,888],{"class":110,"line":122},[108,887,115],{"class":114},[108,889,119],{"class":118},[108,891,892],{"class":110,"line":170},[108,893,167],{"emptyLinePlaceholder":166},[108,895,896,898,900],{"class":110,"line":176},[108,897,580],{"class":114},[108,899,583],{"class":150},[108,901,586],{"class":154},[108,903,904],{"class":110,"line":201},[108,905,591],{"class":154},[108,907,908,910,912,914,916,918],{"class":110,"line":222},[108,909,596],{"class":114},[108,911,147],{"class":114},[108,913,151],{"class":150},[108,915,155],{"class":154},[108,917,158],{"class":150},[108,919,161],{"class":154},[108,921,922],{"class":110,"line":243},[108,923,167],{"emptyLinePlaceholder":166},[108,925,926],{"class":110,"line":264},[108,927,928],{"class":130},"    // 不同单位\n",[108,930,931,933,936,938,940,942,944],{"class":110,"line":285},[108,932,620],{"class":114},[108,934,935],{"class":154}," s ",[108,937,185],{"class":114},[108,939,274],{"class":188},[108,941,192],{"class":114},[108,943,195],{"class":154},[108,945,946],{"class":130},"         // 1 秒\n",[108,948,949,951,954,956,958,960,962],{"class":110,"line":306},[108,950,620],{"class":114},[108,952,953],{"class":154}," ms ",[108,955,185],{"class":114},[108,957,211],{"class":188},[108,959,214],{"class":114},[108,961,195],{"class":154},[108,963,964],{"class":130},"     // 100 毫秒\n",[108,966,967,969,972,974,977,979,981],{"class":110,"line":311},[108,968,620],{"class":114},[108,970,971],{"class":154}," us ",[108,973,185],{"class":114},[108,975,976],{"class":188}," 500",[108,978,235],{"class":114},[108,980,195],{"class":154},[108,982,983],{"class":130},"     // 500 微秒\n",[108,985,986],{"class":110,"line":317},[108,987,167],{"emptyLinePlaceholder":166},[108,989,990],{"class":110,"line":348},[108,991,992],{"class":130},"    // 时长可以相加\n",[108,994,995,997,1000,1002,1004,1007,1009,1011],{"class":110,"line":377},[108,996,620],{"class":114},[108,998,999],{"class":154}," total ",[108,1001,185],{"class":114},[108,1003,935],{"class":154},[108,1005,1006],{"class":114},"+",[108,1008,953],{"class":154},[108,1010,1006],{"class":114},[108,1012,1013],{"class":154}," us;\n",[108,1015,1016,1018,1020,1022,1025,1027,1029,1031,1033,1036,1038,1040,1042,1044,1046,1048],{"class":110,"line":382},[108,1017,649],{"class":150},[108,1019,770],{"class":154},[108,1021,773],{"class":114},[108,1023,1024],{"class":118}," \"total in us: \"",[108,1026,779],{"class":114},[108,1028,730],{"class":150},[108,1030,409],{"class":154},[108,1032,755],{"class":150},[108,1034,1035],{"class":154},">(total).",[108,1037,785],{"class":150},[108,1039,788],{"class":154},[108,1041,773],{"class":114},[108,1043,826],{"class":118},[108,1045,796],{"class":188},[108,1047,799],{"class":118},[108,1049,161],{"class":154},[108,1051,1052],{"class":110,"line":388},[108,1053,167],{"emptyLinePlaceholder":166},[108,1055,1056],{"class":110,"line":438},[108,1057,1058],{"class":130},"    // 秒到毫秒的转换\n",[108,1060,1061,1063,1066,1068,1070,1072],{"class":110,"line":443},[108,1062,620],{"class":114},[108,1064,1065],{"class":154}," two_seconds ",[108,1067,185],{"class":114},[108,1069,295],{"class":188},[108,1071,192],{"class":114},[108,1073,161],{"class":154},[108,1075,1076,1078,1081,1083,1085,1087,1089],{"class":110,"line":449},[108,1077,620],{"class":114},[108,1079,1080],{"class":154}," as_ms ",[108,1082,185],{"class":114},[108,1084,730],{"class":150},[108,1086,409],{"class":154},[108,1088,735],{"class":150},[108,1090,1091],{"class":154},">(two_seconds);\n",[108,1093,1094,1096,1098,1100,1103,1105,1108,1110,1112,1114,1116,1118,1120],{"class":110,"line":720},[108,1095,649],{"class":150},[108,1097,770],{"class":154},[108,1099,773],{"class":114},[108,1101,1102],{"class":118}," \"2s = \"",[108,1104,779],{"class":114},[108,1106,1107],{"class":154}," as_ms.",[108,1109,785],{"class":150},[108,1111,788],{"class":154},[108,1113,773],{"class":114},[108,1115,793],{"class":118},[108,1117,796],{"class":188},[108,1119,799],{"class":118},[108,1121,161],{"class":154},[108,1123,1124],{"class":110,"line":741},[108,1125,167],{"emptyLinePlaceholder":166},[108,1127,1128],{"class":110,"line":760},[108,1129,1130],{"class":130},"    // 毫秒到秒的转换（会截断）\n",[108,1132,1133,1135,1138,1140,1142,1144,1146,1148,1151,1153],{"class":110,"line":765},[108,1134,620],{"class":114},[108,1136,1137],{"class":154}," ms_to_sec ",[108,1139,185],{"class":114},[108,1141,730],{"class":150},[108,1143,409],{"class":154},[108,1145,421],{"class":150},[108,1147,424],{"class":154},[108,1149,1150],{"class":188},"1500",[108,1152,214],{"class":114},[108,1154,472],{"class":154},[108,1156,1157,1159,1161,1163,1166,1168,1171,1173,1175,1177,1180,1182,1184,1186],{"class":110,"line":804},[108,1158,649],{"class":150},[108,1160,770],{"class":154},[108,1162,773],{"class":114},[108,1164,1165],{"class":118}," \"1500ms = \"",[108,1167,779],{"class":114},[108,1169,1170],{"class":154}," ms_to_sec.",[108,1172,785],{"class":150},[108,1174,788],{"class":154},[108,1176,773],{"class":114},[108,1178,1179],{"class":118}," \" s",[108,1181,796],{"class":188},[108,1183,799],{"class":118},[108,1185,195],{"class":154},[108,1187,1188],{"class":130},"  // 1 秒\n",[108,1190,1191],{"class":110,"line":835},[108,1192,167],{"emptyLinePlaceholder":166},[108,1194,1195,1197,1199],{"class":110,"line":840},[108,1196,843],{"class":114},[108,1198,846],{"class":188},[108,1200,161],{"class":154},[108,1202,1203],{"class":110,"line":851},[108,1204,854],{"class":154},[14,1206,1207,1209],{},[38,1208,859],{},"：",[99,1211,1214],{"className":1212,"code":1213,"language":866},[864],"total in us: 1100500 us\n2s = 2000 ms\n1500ms = 1 s\n",[18,1215,1213],{"__ignoreMap":104},[541,1217,1219],{"id":1218},"示例-3在示例-2-基础上实现一个简单的计时器","示例 3：在示例 2 基础上，实现一个简单的计时器",[99,1221,1223],{"className":101,"code":1222,"language":103,"meta":104,"style":104},"#include \u003Ciostream>\n#include \u003Cchrono>\n#include \u003Cfunctional>\n\n// 简单的计时器：测量函数运行时间\ndouble measure(std::function\u003Cvoid()> func)\n{\n    using namespace std::chrono;\n\n    auto start = steady_clock::now();\n    func();\n    auto end = steady_clock::now();\n\n    return duration_cast\u003Cmicroseconds>(end - start).count() / 1000.0;  // 返回毫秒\n}\n\nvoid slow_operation()\n{\n    int sum = 0;\n    for (int i = 0; i \u003C 10000000; ++i)\n    {\n        sum += i;\n    }\n    std::cout \u003C\u003C \"sum = \" \u003C\u003C sum \u003C\u003C \"\\n\";\n}\n\nvoid quick_operation()\n{\n    int sum = 0;\n    for (int i = 0; i \u003C 1000; ++i)\n    {\n        sum += i;\n    }\n    std::cout \u003C\u003C \"sum = \" \u003C\u003C sum \u003C\u003C \"\\n\";\n}\n\nint main()\n{\n    std::cout \u003C\u003C \"slow_op took \" \u003C\u003C measure(slow_operation) \u003C\u003C \" ms\\n\";\n    std::cout \u003C\u003C \"quick_op took \" \u003C\u003C measure(quick_operation) \u003C\u003C \" ms\\n\";\n\n    return 0;\n}\n",[18,1224,1225,1231,1237,1244,1248,1253,1285,1289,1303,1307,1323,1330,1346,1350,1383,1387,1391,1400,1404,1418,1452,1457,1468,1473,1499,1503,1507,1516,1521,1534,1562,1567,1576,1581,1606,1611,1616,1625,1630,1659,1688,1693,1702],{"__ignoreMap":104},[108,1226,1227,1229],{"class":110,"line":111},[108,1228,115],{"class":114},[108,1230,556],{"class":118},[108,1232,1233,1235],{"class":110,"line":122},[108,1234,115],{"class":114},[108,1236,119],{"class":118},[108,1238,1239,1241],{"class":110,"line":170},[108,1240,115],{"class":114},[108,1242,1243],{"class":118}," \u003Cfunctional>\n",[108,1245,1246],{"class":110,"line":176},[108,1247,167],{"emptyLinePlaceholder":166},[108,1249,1250],{"class":110,"line":201},[108,1251,1252],{"class":130},"// 简单的计时器：测量函数运行时间\n",[108,1254,1255,1258,1261,1263,1265,1267,1270,1272,1275,1278,1282],{"class":110,"line":222},[108,1256,1257],{"class":114},"double",[108,1259,1260],{"class":150}," measure",[108,1262,464],{"class":154},[108,1264,412],{"class":150},[108,1266,155],{"class":154},[108,1268,1269],{"class":150},"function",[108,1271,409],{"class":154},[108,1273,1274],{"class":114},"void",[108,1276,1277],{"class":154},"()> ",[108,1279,1281],{"class":1280},"s4XuR","func",[108,1283,1284],{"class":154},")\n",[108,1286,1287],{"class":110,"line":243},[108,1288,591],{"class":154},[108,1290,1291,1293,1295,1297,1299,1301],{"class":110,"line":264},[108,1292,596],{"class":114},[108,1294,147],{"class":114},[108,1296,151],{"class":150},[108,1298,155],{"class":154},[108,1300,158],{"class":150},[108,1302,161],{"class":154},[108,1304,1305],{"class":110,"line":285},[108,1306,167],{"emptyLinePlaceholder":166},[108,1308,1309,1311,1313,1315,1317,1319,1321],{"class":110,"line":306},[108,1310,620],{"class":114},[108,1312,623],{"class":154},[108,1314,185],{"class":114},[108,1316,628],{"class":150},[108,1318,155],{"class":154},[108,1320,339],{"class":150},[108,1322,635],{"class":154},[108,1324,1325,1328],{"class":110,"line":311},[108,1326,1327],{"class":150},"    func",[108,1329,635],{"class":154},[108,1331,1332,1334,1336,1338,1340,1342,1344],{"class":110,"line":317},[108,1333,620],{"class":114},[108,1335,681],{"class":154},[108,1337,185],{"class":114},[108,1339,628],{"class":150},[108,1341,155],{"class":154},[108,1343,339],{"class":150},[108,1345,635],{"class":154},[108,1347,1348],{"class":110,"line":348},[108,1349,167],{"emptyLinePlaceholder":166},[108,1351,1352,1354,1356,1358,1360,1363,1365,1368,1370,1372,1375,1378,1380],{"class":110,"line":377},[108,1353,843],{"class":114},[108,1355,730],{"class":150},[108,1357,409],{"class":154},[108,1359,755],{"class":150},[108,1361,1362],{"class":154},">(end ",[108,1364,714],{"class":114},[108,1366,1367],{"class":154}," start).",[108,1369,785],{"class":150},[108,1371,788],{"class":154},[108,1373,1374],{"class":114},"/",[108,1376,1377],{"class":188}," 1000.0",[108,1379,195],{"class":154},[108,1381,1382],{"class":130},"  // 返回毫秒\n",[108,1384,1385],{"class":110,"line":382},[108,1386,854],{"class":154},[108,1388,1389],{"class":110,"line":388},[108,1390,167],{"emptyLinePlaceholder":166},[108,1392,1393,1395,1398],{"class":110,"line":438},[108,1394,1274],{"class":114},[108,1396,1397],{"class":150}," slow_operation",[108,1399,586],{"class":154},[108,1401,1402],{"class":110,"line":443},[108,1403,591],{"class":154},[108,1405,1406,1409,1412,1414,1416],{"class":110,"line":449},[108,1407,1408],{"class":114},"    int",[108,1410,1411],{"class":154}," sum ",[108,1413,185],{"class":114},[108,1415,846],{"class":188},[108,1417,161],{"class":154},[108,1419,1420,1423,1426,1428,1431,1433,1435,1438,1440,1443,1446,1449],{"class":110,"line":720},[108,1421,1422],{"class":114},"    for",[108,1424,1425],{"class":154}," (",[108,1427,580],{"class":114},[108,1429,1430],{"class":154}," i ",[108,1432,185],{"class":114},[108,1434,846],{"class":188},[108,1436,1437],{"class":154},"; i ",[108,1439,409],{"class":114},[108,1441,1442],{"class":188}," 10000000",[108,1444,1445],{"class":154},"; ",[108,1447,1448],{"class":114},"++",[108,1450,1451],{"class":154},"i)\n",[108,1453,1454],{"class":110,"line":741},[108,1455,1456],{"class":154},"    {\n",[108,1458,1459,1462,1465],{"class":110,"line":760},[108,1460,1461],{"class":154},"        sum ",[108,1463,1464],{"class":114},"+=",[108,1466,1467],{"class":154}," i;\n",[108,1469,1470],{"class":110,"line":765},[108,1471,1472],{"class":154},"    }\n",[108,1474,1475,1477,1479,1481,1484,1486,1488,1490,1493,1495,1497],{"class":110,"line":804},[108,1476,649],{"class":150},[108,1478,770],{"class":154},[108,1480,773],{"class":114},[108,1482,1483],{"class":118}," \"sum = \"",[108,1485,779],{"class":114},[108,1487,1411],{"class":154},[108,1489,773],{"class":114},[108,1491,1492],{"class":118}," \"",[108,1494,796],{"class":188},[108,1496,799],{"class":118},[108,1498,161],{"class":154},[108,1500,1501],{"class":110,"line":835},[108,1502,854],{"class":154},[108,1504,1505],{"class":110,"line":840},[108,1506,167],{"emptyLinePlaceholder":166},[108,1508,1509,1511,1514],{"class":110,"line":851},[108,1510,1274],{"class":114},[108,1512,1513],{"class":150}," quick_operation",[108,1515,586],{"class":154},[108,1517,1519],{"class":110,"line":1518},28,[108,1520,591],{"class":154},[108,1522,1524,1526,1528,1530,1532],{"class":110,"line":1523},29,[108,1525,1408],{"class":114},[108,1527,1411],{"class":154},[108,1529,185],{"class":114},[108,1531,846],{"class":188},[108,1533,161],{"class":154},[108,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1556,1558,1560],{"class":110,"line":1536},30,[108,1538,1422],{"class":114},[108,1540,1425],{"class":154},[108,1542,580],{"class":114},[108,1544,1430],{"class":154},[108,1546,185],{"class":114},[108,1548,846],{"class":188},[108,1550,1437],{"class":154},[108,1552,409],{"class":114},[108,1554,1555],{"class":188}," 1000",[108,1557,1445],{"class":154},[108,1559,1448],{"class":114},[108,1561,1451],{"class":154},[108,1563,1565],{"class":110,"line":1564},31,[108,1566,1456],{"class":154},[108,1568,1570,1572,1574],{"class":110,"line":1569},32,[108,1571,1461],{"class":154},[108,1573,1464],{"class":114},[108,1575,1467],{"class":154},[108,1577,1579],{"class":110,"line":1578},33,[108,1580,1472],{"class":154},[108,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604],{"class":110,"line":1583},34,[108,1585,649],{"class":150},[108,1587,770],{"class":154},[108,1589,773],{"class":114},[108,1591,1483],{"class":118},[108,1593,779],{"class":114},[108,1595,1411],{"class":154},[108,1597,773],{"class":114},[108,1599,1492],{"class":118},[108,1601,796],{"class":188},[108,1603,799],{"class":118},[108,1605,161],{"class":154},[108,1607,1609],{"class":110,"line":1608},35,[108,1610,854],{"class":154},[108,1612,1614],{"class":110,"line":1613},36,[108,1615,167],{"emptyLinePlaceholder":166},[108,1617,1619,1621,1623],{"class":110,"line":1618},37,[108,1620,580],{"class":114},[108,1622,583],{"class":150},[108,1624,586],{"class":154},[108,1626,1628],{"class":110,"line":1627},38,[108,1629,591],{"class":154},[108,1631,1633,1635,1637,1639,1642,1644,1646,1649,1651,1653,1655,1657],{"class":110,"line":1632},39,[108,1634,649],{"class":150},[108,1636,770],{"class":154},[108,1638,773],{"class":114},[108,1640,1641],{"class":118}," \"slow_op took \"",[108,1643,779],{"class":114},[108,1645,1260],{"class":150},[108,1647,1648],{"class":154},"(slow_operation) ",[108,1650,773],{"class":114},[108,1652,793],{"class":118},[108,1654,796],{"class":188},[108,1656,799],{"class":118},[108,1658,161],{"class":154},[108,1660,1662,1664,1666,1668,1671,1673,1675,1678,1680,1682,1684,1686],{"class":110,"line":1661},40,[108,1663,649],{"class":150},[108,1665,770],{"class":154},[108,1667,773],{"class":114},[108,1669,1670],{"class":118}," \"quick_op took \"",[108,1672,779],{"class":114},[108,1674,1260],{"class":150},[108,1676,1677],{"class":154},"(quick_operation) ",[108,1679,773],{"class":114},[108,1681,793],{"class":118},[108,1683,796],{"class":188},[108,1685,799],{"class":118},[108,1687,161],{"class":154},[108,1689,1691],{"class":110,"line":1690},41,[108,1692,167],{"emptyLinePlaceholder":166},[108,1694,1696,1698,1700],{"class":110,"line":1695},42,[108,1697,843],{"class":114},[108,1699,846],{"class":188},[108,1701,161],{"class":154},[108,1703,1705],{"class":110,"line":1704},43,[108,1706,854],{"class":154},[14,1708,1709,1711],{},[38,1710,859],{},"（运行时间因机器而异）：",[99,1713,1716],{"className":1714,"code":1715,"language":866},[864],"sum = 887459712\nslow_op took 12.5 ms\nsum = 499500\nquick_op took 0.001 ms\n",[18,1717,1715],{"__ignoreMap":104},[541,1719,1721],{"id":1720},"示例-4在示例-3-基础上获取和格式化系统时间","示例 4：在示例 3 基础上，获取和格式化系统时间",[99,1723,1725],{"className":101,"code":1724,"language":103,"meta":104,"style":104},"#include \u003Ciostream>\n#include \u003Cchrono>\n#include \u003Cctime>\n#include \u003Ciomanip>\n\nint main()\n{\n    using namespace std::chrono;\n\n    // 获取当前系统时间\n    auto now = system_clock::now();\n\n    // 获取自 epoch（1970-01-01）以来的秒数\n    auto epoch_seconds = duration_cast\u003Cseconds>(now.time_since_epoch());\n    std::cout \u003C\u003C \"Seconds since epoch: \" \u003C\u003C epoch_seconds.count() \u003C\u003C \"\\n\";\n\n    // 转换为 C 风格的 time_t 打印\n    std::time_t now_c = system_clock::to_time_t(now);\n    std::cout \u003C\u003C \"Current time: \" \u003C\u003C std::ctime(&now_c);\n\n    // 计算未来时间点\n    auto future = now + 24h;  // C++20 的 24h 字面量\n    // 如果没有 C++20，可以用: auto future = now + hours(24);\n    std::time_t future_c = system_clock::to_time_t(future);\n    std::cout \u003C\u003C \"24 hours later: \" \u003C\u003C std::ctime(&future_c);\n\n    return 0;\n}\n",[18,1726,1727,1733,1739,1746,1753,1757,1765,1769,1783,1787,1792,1809,1813,1818,1842,1872,1876,1881,1905,1933,1937,1942,1965,1970,1992,2018,2022,2030],{"__ignoreMap":104},[108,1728,1729,1731],{"class":110,"line":111},[108,1730,115],{"class":114},[108,1732,556],{"class":118},[108,1734,1735,1737],{"class":110,"line":122},[108,1736,115],{"class":114},[108,1738,119],{"class":118},[108,1740,1741,1743],{"class":110,"line":170},[108,1742,115],{"class":114},[108,1744,1745],{"class":118}," \u003Cctime>\n",[108,1747,1748,1750],{"class":110,"line":176},[108,1749,115],{"class":114},[108,1751,1752],{"class":118}," \u003Ciomanip>\n",[108,1754,1755],{"class":110,"line":201},[108,1756,167],{"emptyLinePlaceholder":166},[108,1758,1759,1761,1763],{"class":110,"line":222},[108,1760,580],{"class":114},[108,1762,583],{"class":150},[108,1764,586],{"class":154},[108,1766,1767],{"class":110,"line":243},[108,1768,591],{"class":154},[108,1770,1771,1773,1775,1777,1779,1781],{"class":110,"line":264},[108,1772,596],{"class":114},[108,1774,147],{"class":114},[108,1776,151],{"class":150},[108,1778,155],{"class":154},[108,1780,158],{"class":150},[108,1782,161],{"class":154},[108,1784,1785],{"class":110,"line":285},[108,1786,167],{"emptyLinePlaceholder":166},[108,1788,1789],{"class":110,"line":306},[108,1790,1791],{"class":130},"    // 获取当前系统时间\n",[108,1793,1794,1796,1798,1800,1803,1805,1807],{"class":110,"line":311},[108,1795,620],{"class":114},[108,1797,322],{"class":154},[108,1799,185],{"class":114},[108,1801,1802],{"class":150}," system_clock",[108,1804,155],{"class":154},[108,1806,339],{"class":150},[108,1808,635],{"class":154},[108,1810,1811],{"class":110,"line":317},[108,1812,167],{"emptyLinePlaceholder":166},[108,1814,1815],{"class":110,"line":348},[108,1816,1817],{"class":130},"    // 获取自 epoch（1970-01-01）以来的秒数\n",[108,1819,1820,1822,1825,1827,1829,1831,1833,1836,1839],{"class":110,"line":377},[108,1821,620],{"class":114},[108,1823,1824],{"class":154}," epoch_seconds ",[108,1826,185],{"class":114},[108,1828,730],{"class":150},[108,1830,409],{"class":154},[108,1832,421],{"class":150},[108,1834,1835],{"class":154},">(now.",[108,1837,1838],{"class":150},"time_since_epoch",[108,1840,1841],{"class":154},"());\n",[108,1843,1844,1846,1848,1850,1853,1855,1858,1860,1862,1864,1866,1868,1870],{"class":110,"line":382},[108,1845,649],{"class":150},[108,1847,770],{"class":154},[108,1849,773],{"class":114},[108,1851,1852],{"class":118}," \"Seconds since epoch: \"",[108,1854,779],{"class":114},[108,1856,1857],{"class":154}," epoch_seconds.",[108,1859,785],{"class":150},[108,1861,788],{"class":154},[108,1863,773],{"class":114},[108,1865,1492],{"class":118},[108,1867,796],{"class":188},[108,1869,799],{"class":118},[108,1871,161],{"class":154},[108,1873,1874],{"class":110,"line":388},[108,1875,167],{"emptyLinePlaceholder":166},[108,1877,1878],{"class":110,"line":438},[108,1879,1880],{"class":130},"    // 转换为 C 风格的 time_t 打印\n",[108,1882,1883,1885,1887,1890,1893,1895,1897,1899,1902],{"class":110,"line":443},[108,1884,649],{"class":150},[108,1886,155],{"class":154},[108,1888,1889],{"class":114},"time_t",[108,1891,1892],{"class":154}," now_c ",[108,1894,185],{"class":114},[108,1896,1802],{"class":150},[108,1898,155],{"class":154},[108,1900,1901],{"class":188},"to_time_t",[108,1903,1904],{"class":154},"(now);\n",[108,1906,1907,1909,1911,1913,1916,1918,1920,1922,1925,1927,1930],{"class":110,"line":449},[108,1908,649],{"class":150},[108,1910,770],{"class":154},[108,1912,773],{"class":114},[108,1914,1915],{"class":118}," \"Current time: \"",[108,1917,779],{"class":114},[108,1919,151],{"class":150},[108,1921,155],{"class":154},[108,1923,1924],{"class":150},"ctime",[108,1926,464],{"class":154},[108,1928,1929],{"class":114},"&",[108,1931,1932],{"class":154},"now_c);\n",[108,1934,1935],{"class":110,"line":720},[108,1936,167],{"emptyLinePlaceholder":166},[108,1938,1939],{"class":110,"line":741},[108,1940,1941],{"class":130},"    // 计算未来时间点\n",[108,1943,1944,1946,1949,1951,1953,1955,1958,1960,1962],{"class":110,"line":760},[108,1945,620],{"class":114},[108,1947,1948],{"class":154}," future ",[108,1950,185],{"class":114},[108,1952,322],{"class":154},[108,1954,1006],{"class":114},[108,1956,1957],{"class":188}," 24",[108,1959,298],{"class":114},[108,1961,195],{"class":154},[108,1963,1964],{"class":130},"  // C++20 的 24h 字面量\n",[108,1966,1967],{"class":110,"line":765},[108,1968,1969],{"class":130},"    // 如果没有 C++20，可以用: auto future = now + hours(24);\n",[108,1971,1972,1974,1976,1978,1981,1983,1985,1987,1989],{"class":110,"line":804},[108,1973,649],{"class":150},[108,1975,155],{"class":154},[108,1977,1889],{"class":114},[108,1979,1980],{"class":154}," future_c ",[108,1982,185],{"class":114},[108,1984,1802],{"class":150},[108,1986,155],{"class":154},[108,1988,1901],{"class":188},[108,1990,1991],{"class":154},"(future);\n",[108,1993,1994,1996,1998,2000,2003,2005,2007,2009,2011,2013,2015],{"class":110,"line":835},[108,1995,649],{"class":150},[108,1997,770],{"class":154},[108,1999,773],{"class":114},[108,2001,2002],{"class":118}," \"24 hours later: \"",[108,2004,779],{"class":114},[108,2006,151],{"class":150},[108,2008,155],{"class":154},[108,2010,1924],{"class":150},[108,2012,464],{"class":154},[108,2014,1929],{"class":114},[108,2016,2017],{"class":154},"future_c);\n",[108,2019,2020],{"class":110,"line":840},[108,2021,167],{"emptyLinePlaceholder":166},[108,2023,2024,2026,2028],{"class":110,"line":851},[108,2025,843],{"class":114},[108,2027,846],{"class":188},[108,2029,161],{"class":154},[108,2031,2032],{"class":110,"line":1518},[108,2033,854],{"class":154},[14,2035,2036,2038],{},[38,2037,859],{},"（日期因运行时间而异）：",[99,2040,2043],{"className":2041,"code":2042,"language":866},[864],"Seconds since epoch: 1748870400\nCurrent time: Mon Jun  2 12:00:00 2026\n24 hours later: Tue Jun  3 12:00:00 2026\n",[18,2044,2042],{"__ignoreMap":104},[10,2046,859],{"id":859},[14,2048,2049],{},"见上方每个示例的\"运行结果\"。",[10,2051,2052],{"id":2052},"示例中的关键语法解释",[477,2054,2055,2074],{},[480,2056,2057],{},[483,2058,2059,2062,2065,2068,2071],{},[486,2060,2061],{"align":488},"示例",[486,2063,2064],{"align":488},"讲了什么",[486,2066,2067],{"align":488},"新出现的语法",[486,2069,2070],{"align":488},"为什么这样写",[486,2072,2073],{"align":488},"注意事项",[497,2075,2076,2104,2130,2151],{},[483,2077,2078,2081,2084,2095,2098],{},[502,2079,2080],{"align":488},"示例 1",[502,2082,2083],{"align":488},"测量代码耗时",[502,2085,2086,21,2089,2091,2092],{"align":488},[18,2087,2088],{},"steady_clock::now()",[18,2090,406],{},"、字面量 ",[18,2093,2094],{},"500ms",[502,2096,2097],{"align":488},"steady_clock 单调递增，适合计时",[502,2099,2100,2101],{"align":488},"字面量需要 ",[18,2102,2103],{},"using namespace std::chrono",[483,2105,2106,2109,2112,2122,2125],{},[502,2107,2108],{"align":488},"示例 2",[502,2110,2111],{"align":488},"时长单位转换",[502,2113,2114,21,2117,21,2120],{"align":488},[18,2115,2116],{},"1s",[18,2118,2119],{},"100ms",[18,2121,406],{},[502,2123,2124],{"align":488},"类型自动管理单位，转换时要显式 cast",[502,2126,2127,2129],{"align":488},[18,2128,406],{}," 是截断，不是四舍五入",[483,2131,2132,2135,2138,2143,2146],{},[502,2133,2134],{"align":488},"示例 3",[502,2136,2137],{"align":488},"通用计时器",[502,2139,2140],{"align":488},[18,2141,2142],{},"measure(function\u003Cvoid()>)",[502,2144,2145],{"align":488},"包装成一个工具函数，可重复使用",[502,2147,2148,2150],{"align":488},[18,2149,86],{}," 是最佳选择",[483,2152,2153,2156,2159,2170,2173],{},[502,2154,2155],{"align":488},"示例 4",[502,2157,2158],{"align":488},"系统时间和格式化",[502,2160,2161,21,2164,21,2167],{"align":488},[18,2162,2163],{},"system_clock::now()",[18,2165,2166],{},"to_time_t()",[18,2168,2169],{},"24h",[502,2171,2172],{"align":488},"system_clock 可以转为日历时间",[502,2174,2175],{"align":488},"system_clock 可能被系统时间调整影响，不用于计时",[10,2177,2178],{"id":2178},"计时和显示时间不要混用",[477,2180,2181,2194],{},[480,2182,2183],{},[483,2184,2185,2188,2191],{},[486,2186,2187],{"align":488},"需求",[486,2189,2190],{"align":488},"推荐时钟",[486,2192,2193],{"align":488},"原因",[497,2195,2196,2208,2220,2232],{},[483,2197,2198,2201,2205],{},[502,2199,2200],{"align":488},"测量函数耗时",[502,2202,2203],{"align":488},[18,2204,86],{},[502,2206,2207],{"align":488},"单调递增，不受系统时间调整影响",[483,2209,2210,2213,2217],{},[502,2211,2212],{"align":488},"超时判断",[502,2214,2215],{"align":488},[18,2216,86],{},[502,2218,2219],{"align":488},"不会因为系统时间跳变导致超时错误",[483,2221,2222,2225,2229],{},[502,2223,2224],{"align":488},"打印当前日期时间",[502,2226,2227],{"align":488},[18,2228,83],{},[502,2230,2231],{"align":488},"可以转换成日历时间",[483,2233,2234,2237,2241],{},[502,2235,2236],{"align":488},"生成日志时间戳",[502,2238,2239],{"align":488},[18,2240,83],{},[502,2242,2243],{"align":488},"对人类可读",[14,2245,2246,2247,2249,2250,87],{},"一个常见错误是用 ",[18,2248,83],{}," 做超时判断。如果系统时间被 NTP 或用户手动调回去，程序可能“等很久都不超时”。测耗时和超时都优先用 ",[18,2251,86],{},[541,2253,2255],{"id":2254},"示例-5用-steady_clock-做超时判断","示例 5：用 steady_clock 做超时判断",[99,2257,2259],{"className":101,"code":2258,"language":103,"meta":104,"style":104},"#include \u003Cchrono>\n#include \u003Ciostream>\n#include \u003Cthread>\n\nint main()\n{\n    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    using namespace std::chrono;\n\n    auto deadline = steady_clock::now() + 300ms;\n\n    while (steady_clock::now() \u003C deadline)\n    {\n        std::cout \u003C\u003C \"waiting...\\n\";\n        std::this_thread::sleep_for(100ms);\n    }\n\n    std::cout \u003C\u003C \"timeout\\n\";\n\n    // 返回 0 表示程序正常结束。\n    return 0;\n}\n",[18,2260,2261,2267,2273,2280,2284,2292,2296,2301,2315,2319,2345,2349,2369,2373,2391,2411,2415,2419,2436,2440,2445,2453],{"__ignoreMap":104},[108,2262,2263,2265],{"class":110,"line":111},[108,2264,115],{"class":114},[108,2266,119],{"class":118},[108,2268,2269,2271],{"class":110,"line":122},[108,2270,115],{"class":114},[108,2272,556],{"class":118},[108,2274,2275,2277],{"class":110,"line":170},[108,2276,115],{"class":114},[108,2278,2279],{"class":118}," \u003Cthread>\n",[108,2281,2282],{"class":110,"line":176},[108,2283,167],{"emptyLinePlaceholder":166},[108,2285,2286,2288,2290],{"class":110,"line":201},[108,2287,580],{"class":114},[108,2289,583],{"class":150},[108,2291,586],{"class":154},[108,2293,2294],{"class":110,"line":222},[108,2295,591],{"class":154},[108,2297,2298],{"class":110,"line":243},[108,2299,2300],{"class":130},"    // 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[108,2302,2303,2305,2307,2309,2311,2313],{"class":110,"line":264},[108,2304,596],{"class":114},[108,2306,147],{"class":114},[108,2308,151],{"class":150},[108,2310,155],{"class":154},[108,2312,158],{"class":150},[108,2314,161],{"class":154},[108,2316,2317],{"class":110,"line":285},[108,2318,167],{"emptyLinePlaceholder":166},[108,2320,2321,2323,2326,2328,2330,2332,2334,2336,2338,2341,2343],{"class":110,"line":306},[108,2322,620],{"class":114},[108,2324,2325],{"class":154}," deadline ",[108,2327,185],{"class":114},[108,2329,628],{"class":150},[108,2331,155],{"class":154},[108,2333,339],{"class":150},[108,2335,788],{"class":154},[108,2337,1006],{"class":114},[108,2339,2340],{"class":188}," 300",[108,2342,214],{"class":114},[108,2344,161],{"class":154},[108,2346,2347],{"class":110,"line":311},[108,2348,167],{"emptyLinePlaceholder":166},[108,2350,2351,2354,2356,2358,2360,2362,2364,2366],{"class":110,"line":317},[108,2352,2353],{"class":114},"    while",[108,2355,1425],{"class":154},[108,2357,86],{"class":150},[108,2359,155],{"class":154},[108,2361,339],{"class":150},[108,2363,788],{"class":154},[108,2365,409],{"class":114},[108,2367,2368],{"class":154}," deadline)\n",[108,2370,2371],{"class":110,"line":348},[108,2372,1456],{"class":154},[108,2374,2375,2378,2380,2382,2385,2387,2389],{"class":110,"line":377},[108,2376,2377],{"class":150},"        std",[108,2379,770],{"class":154},[108,2381,773],{"class":114},[108,2383,2384],{"class":118}," \"waiting...",[108,2386,796],{"class":188},[108,2388,799],{"class":118},[108,2390,161],{"class":154},[108,2392,2393,2395,2397,2399,2401,2403,2405,2407,2409],{"class":110,"line":382},[108,2394,2377],{"class":150},[108,2396,155],{"class":154},[108,2398,456],{"class":150},[108,2400,155],{"class":154},[108,2402,461],{"class":150},[108,2404,464],{"class":154},[108,2406,427],{"class":188},[108,2408,214],{"class":114},[108,2410,472],{"class":154},[108,2412,2413],{"class":110,"line":388},[108,2414,1472],{"class":154},[108,2416,2417],{"class":110,"line":438},[108,2418,167],{"emptyLinePlaceholder":166},[108,2420,2421,2423,2425,2427,2430,2432,2434],{"class":110,"line":443},[108,2422,649],{"class":150},[108,2424,770],{"class":154},[108,2426,773],{"class":114},[108,2428,2429],{"class":118}," \"timeout",[108,2431,796],{"class":188},[108,2433,799],{"class":118},[108,2435,161],{"class":154},[108,2437,2438],{"class":110,"line":449},[108,2439,167],{"emptyLinePlaceholder":166},[108,2441,2442],{"class":110,"line":720},[108,2443,2444],{"class":130},"    // 返回 0 表示程序正常结束。\n",[108,2446,2447,2449,2451],{"class":110,"line":741},[108,2448,843],{"class":114},[108,2450,846],{"class":188},[108,2452,161],{"class":154},[108,2454,2455],{"class":110,"line":760},[108,2456,854],{"class":154},[14,2458,2459,1209],{},[38,2460,2461],{},"可能的运行结果",[99,2463,2466],{"className":2464,"code":2465,"language":866},[864],"waiting...\nwaiting...\nwaiting...\ntimeout\n",[18,2467,2465],{"__ignoreMap":104},[14,2469,2470,2471,2473],{},"这里的重点不是循环本身，而是超时基准用 ",[18,2472,86],{},"。这类写法在定时器、串口读取超时、网络等待超时里非常常见。",[10,2475,2476],{"id":2476},"常见错误",[14,2478,2479],{},[38,2480,2481,2482,2484],{},"错误 1：忘记 ",[18,2483,2103],{}," 导致字面量不识别",[99,2486,2488],{"className":101,"code":2487,"language":103,"meta":104,"style":104},"auto t = 500ms;  // ❌ 编译错误！\n",[18,2489,2490],{"__ignoreMap":104},[108,2491,2492,2494,2497,2499,2501,2503,2505],{"class":110,"line":111},[108,2493,179],{"class":114},[108,2495,2496],{"class":154}," t ",[108,2498,185],{"class":114},[108,2500,976],{"class":188},[108,2502,214],{"class":114},[108,2504,195],{"class":154},[108,2506,2507],{"class":130},"  // ❌ 编译错误！\n",[14,2509,2510,2511,2514,2515,87],{},"正确做法：加 ",[18,2512,2513],{},"using namespace std::chrono;"," 或写 ",[18,2516,2517],{},"std::chrono::milliseconds(500)",[14,2519,2520],{},[38,2521,2522],{},"错误 2：用 system_clock 测量耗时",[99,2524,2526],{"className":101,"code":2525,"language":103,"meta":104,"style":104},"auto start = system_clock::now();  // ❌ 系统时间可能被人调回去了！\n",[18,2527,2528],{"__ignoreMap":104},[108,2529,2530,2532,2534,2536,2538,2540,2542,2544],{"class":110,"line":111},[108,2531,179],{"class":114},[108,2533,623],{"class":154},[108,2535,185],{"class":114},[108,2537,1802],{"class":150},[108,2539,155],{"class":154},[108,2541,339],{"class":150},[108,2543,342],{"class":154},[108,2545,2546],{"class":130},"  // ❌ 系统时间可能被人调回去了！\n",[14,2548,2549,2550,87],{},"正确做法：测量耗时一定要用 ",[18,2551,86],{},[14,2553,2554],{},[38,2555,2556,2557,2560],{},"错误 3：忘记 ",[18,2558,2559],{},".count()"," 直接输出 duration",[99,2562,2564],{"className":101,"code":2563,"language":103,"meta":104,"style":104},"std::cout \u003C\u003C duration_cast\u003Cmilliseconds>(elapsed);  // ❌ 不能直接输出\n",[18,2565,2566],{"__ignoreMap":104},[108,2567,2568,2570,2572,2574,2576,2578,2580,2583],{"class":110,"line":111},[108,2569,412],{"class":150},[108,2571,770],{"class":154},[108,2573,773],{"class":114},[108,2575,730],{"class":150},[108,2577,409],{"class":154},[108,2579,735],{"class":150},[108,2581,2582],{"class":154},">(elapsed);",[108,2584,2585],{"class":130},"  // ❌ 不能直接输出\n",[14,2587,2588,2589],{},"正确做法：",[18,2590,2591],{},"std::cout \u003C\u003C elapsed_ms.count() \u003C\u003C \" ms\\n\";",[14,2593,2594],{},[38,2595,2596],{},"错误 4：duration_cast 的截断问题",[99,2598,2600],{"className":101,"code":2599,"language":103,"meta":104,"style":104},"auto sec = duration_cast\u003Cseconds>(1500ms);  // 1 秒！不是 1.5 秒\n",[18,2601,2602],{"__ignoreMap":104},[108,2603,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624],{"class":110,"line":111},[108,2605,179],{"class":114},[108,2607,393],{"class":154},[108,2609,185],{"class":114},[108,2611,730],{"class":150},[108,2613,409],{"class":154},[108,2615,421],{"class":150},[108,2617,424],{"class":154},[108,2619,1150],{"class":188},[108,2621,214],{"class":114},[108,2623,432],{"class":154},[108,2625,2626],{"class":130},"  // 1 秒！不是 1.5 秒\n",[14,2628,2629,2630,2633,2634,2637],{},"正确做法：如果需要小数，用 ",[18,2631,2632],{},"duration\u003Cdouble>"," 或 ",[18,2635,2636],{},"duration_cast\u003Cmilliseconds>"," 保留精度。",[10,2639,2640],{"id":2640},"使用建议",[2642,2643,2644,2652,2660,2671,2678,2687],"ol",{},[54,2645,2646,2651],{},[38,2647,2648,2649],{},"测量耗时用 ",[18,2650,86],{},"：单调递增，不受系统时间调整影响。",[54,2653,2654,2659],{},[38,2655,2656,2657],{},"显示时间用 ",[18,2658,83],{},"：可以转为日历时间。",[54,2661,2662,2670],{},[38,2663,2664,2665,21,2667,2669],{},"用字面量 ",[18,2666,2116],{},[18,2668,2119],{}," 而不是直接写数字","：可读性更好。",[54,2672,2673,2677],{},[38,2674,2675,2129],{},[18,2676,406],{},"：精度会丢失，注意使用场景。",[54,2679,2680,1209,2683,2686],{},[38,2681,2682],{},"C++20 增加了日历和时区支持",[18,2684,2685],{},"std::chrono::year_month_day"," 等，更强大。",[54,2688,2689,2694],{},[38,2690,2691,2692],{},"超时判断也用 ",[18,2693,86],{},"：和测耗时一样，不受系统时间调整影响。",[10,2696,2697],{"id":2697},"小结",[51,2699,2700,2705,2714,2725,2733],{},[54,2701,2702,2704],{},[18,2703,5],{}," 提供类型安全的时间处理：duration（时长）、time_point（时间点）、clock（时钟）。",[54,2706,2707,2708,2710,2711,2713],{},"用 ",[18,2709,2088],{}," 测量耗时，用 ",[18,2712,2163],{}," 获取系统时间。",[54,2715,2716,2717,21,2719,21,2721,2724],{},"字面量 ",[18,2718,2116],{},[18,2720,2119],{},[18,2722,2723],{},"50us"," 让时间代码直观易读。",[54,2726,2727,2729,2730,2732],{},[18,2728,406],{}," 做单位转换，",[18,2731,2559],{}," 获取数值。",[54,2734,2735,2738],{},[18,2736,2737],{},"std::this_thread::sleep_for(500ms)"," 做线程休眠。",[541,2740,2741],{"id":2741},"工程拓展",[14,2743,2744,2745,2748,2749,2752,2753,2755,2756,2758,2759,87],{},"在 ROS2 中，",[18,2746,2747],{},"rclcpp::Duration"," 和 ",[18,2750,2751],{},"rclcpp::Time"," 的用法和 ",[18,2754,5],{}," 非常相似。学好了 ",[18,2757,5],{},"，理解 ROS2 的时间处理就很容易了。在 Boost.Asio 中，定时器也大量使用 ",[18,2760,2761],{},"std::chrono::duration",[2763,2764,2765],"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 .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .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}",{"title":104,"searchDepth":122,"depth":122,"links":2767},[2768,2769,2770,2771,2772,2773,2774,2780,2781,2782,2785,2786,2787],{"id":12,"depth":122,"text":12},{"id":44,"depth":122,"text":44},{"id":90,"depth":122,"text":91},{"id":97,"depth":122,"text":97},{"id":134,"depth":122,"text":134},{"id":475,"depth":122,"text":475},{"id":539,"depth":122,"text":539,"children":2775},[2776,2777,2778,2779],{"id":543,"depth":170,"text":544},{"id":871,"depth":170,"text":872},{"id":1218,"depth":170,"text":1219},{"id":1720,"depth":170,"text":1721},{"id":859,"depth":122,"text":859},{"id":2052,"depth":122,"text":2052},{"id":2178,"depth":122,"text":2178,"children":2783},[2784],{"id":2254,"depth":170,"text":2255},{"id":2476,"depth":122,"text":2476},{"id":2640,"depth":122,"text":2640},{"id":2697,"depth":122,"text":2697,"children":2788},[2789],{"id":2741,"depth":170,"text":2741},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","18.18",18180000,"2023-10-05","wiki/2023-10-05-cplusplus-jiao-xue","zh-cn:2023-10-05-cplusplus-jiao-xue","/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki/2023-10-05-Cplusplus教学/ch18-18-std-chrono",false,null,"/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","zh-CN","zh-cn",{},{"title":5,"description":104},"xZWrpf3E5NDHU6ydGOEdXJRcDJdsdpXKHr9zs---vKw",[2809,2815,2821,2827,2833,2839,2845,2851,2857,2863,2869,2875,2881,2887,2893,2899,2905,2911,2917,2923,2929,2935,2941,2947,2952,2958,2964,2970,2976,2982,2988,2994,3000,3001,3007,3013,3019,3025,3031,3037,3043,3049,3054,3060,3066,3072,3078,3084,3090,3096,3102,3108,3114,3120,3126,3132,3138,3144,3150,3156,3162,3168,3174,3180,3186,3192,3198,3204,3210,3216],{"path":2810,"stem":2811,"title":2812,"date":2793,"chapter":2813,"chapterSort":2814,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch1-c-ji-chu-chu-shi","wiki/2023-10-05-Cplusplus教学/ch1-C++基础初识","C++基础初识","1",1000000,{"path":2816,"stem":2817,"title":2818,"date":2793,"chapter":2819,"chapterSort":2820,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch10-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki/2023-10-05-Cplusplus教学/ch10-内存分区与生命周期","内存分区与生命周期","10",10000000,{"path":2822,"stem":2823,"title":2824,"date":2793,"chapter":2825,"chapterSort":2826,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch11-yin-yong","wiki/2023-10-05-Cplusplus教学/ch11-引用","引用","11",11000000,{"path":2828,"stem":2829,"title":2830,"date":2793,"chapter":2831,"chapterSort":2832,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch12-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki/2023-10-05-Cplusplus教学/ch12-函数提高与命名空间","函数提高与命名空间","12",12000000,{"path":2834,"stem":2835,"title":2836,"date":2793,"chapter":2837,"chapterSort":2838,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-1-feng-zhuang","wiki/2023-10-05-Cplusplus教学/ch13-1-封装","封装","13.1",13010000,{"path":2840,"stem":2841,"title":2842,"date":2793,"chapter":2843,"chapterSort":2844,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-2-dui-xiang-chu-shi-hua-he-qing-li","wiki/2023-10-05-Cplusplus教学/ch13-2-对象初始化和清理","对象初始化和清理","13.2",13020000,{"path":2846,"stem":2847,"title":2848,"date":2793,"chapter":2849,"chapterSort":2850,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-3-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch13-3-对象模型与this指针","对象模型与this指针","13.3",13030000,{"path":2852,"stem":2853,"title":2854,"date":2793,"chapter":2855,"chapterSort":2856,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-4-you-yuan-yu-yun-suan-fu-zhong-zai","wiki/2023-10-05-Cplusplus教学/ch13-4-友元与运算符重载","友元与运算符重载","13.4",13040000,{"path":2858,"stem":2859,"title":2860,"date":2793,"chapter":2861,"chapterSort":2862,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-5-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch13-5-继承","继承","13.5",13050000,{"path":2864,"stem":2865,"title":2866,"date":2793,"chapter":2867,"chapterSort":2868,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-6-duo-tai","wiki/2023-10-05-Cplusplus教学/ch13-6-多态","多态","13.6",13060000,{"path":2870,"stem":2871,"title":2872,"date":2793,"chapter":2873,"chapterSort":2874,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch13-lei-he-dui-xiang","wiki/2023-10-05-Cplusplus教学/ch13-类和对象","类和对象","13",13000000,{"path":2876,"stem":2877,"title":2878,"date":2793,"chapter":2879,"chapterSort":2880,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch14-wen-jian-cao-zuo","wiki/2023-10-05-Cplusplus教学/ch14-文件操作","文件操作","14",14000000,{"path":2882,"stem":2883,"title":2884,"date":2793,"chapter":2885,"chapterSort":2886,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch15-mu-ban","wiki/2023-10-05-Cplusplus教学/ch15-模板","模板","15",15000000,{"path":2888,"stem":2889,"title":2890,"date":2793,"chapter":2891,"chapterSort":2892,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-1-stl-chu-shi","wiki/2023-10-05-Cplusplus教学/ch16-1-STL初识","STL初识","16.1",16010000,{"path":2894,"stem":2895,"title":2896,"date":2793,"chapter":2897,"chapterSort":2898,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-2-std-array","wiki/2023-10-05-Cplusplus教学/ch16-2-std-array","std::array","16.2",16020000,{"path":2900,"stem":2901,"title":2902,"date":2793,"chapter":2903,"chapterSort":2904,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-3-string-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-3-string容器","string容器","16.3",16030000,{"path":2906,"stem":2907,"title":2908,"date":2793,"chapter":2909,"chapterSort":2910,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-4-vector-yu-deque-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-4-vector与deque容器","vector与deque容器","16.4",16040000,{"path":2912,"stem":2913,"title":2914,"date":2793,"chapter":2915,"chapterSort":2916,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-5-stack-queue-list-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-5-stack-queue-list容器","stack / queue / list 容器","16.5",16050000,{"path":2918,"stem":2919,"title":2920,"date":2793,"chapter":2921,"chapterSort":2922,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-6-set-map-rong-qi","wiki/2023-10-05-Cplusplus教学/ch16-6-set-map容器","set / map 容器","16.6",16060000,{"path":2924,"stem":2925,"title":2926,"date":2793,"chapter":2927,"chapterSort":2928,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-7-han-shu-dui-xiang-yu-wei-ci","wiki/2023-10-05-Cplusplus教学/ch16-7-函数对象与谓词","函数对象与谓词","16.7",16070000,{"path":2930,"stem":2931,"title":2932,"date":2793,"chapter":2933,"chapterSort":2934,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-8-chang-yong-suan-fa","wiki/2023-10-05-Cplusplus教学/ch16-8-常用算法","常用算法","16.8",16080000,{"path":2936,"stem":2937,"title":2938,"date":2793,"chapter":2939,"chapterSort":2940,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch16-stl-ti-gao-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch16-STL提高编程","STL提高编程","16",16000000,{"path":2942,"stem":2943,"title":2944,"date":2793,"chapter":2945,"chapterSort":2946,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch17-c-lei-xing-zhuan-huan","wiki/2023-10-05-Cplusplus教学/ch17-C++类型转换","C++类型转换","17",17000000,{"path":2948,"stem":2949,"title":179,"date":2793,"chapter":2950,"chapterSort":2951,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-1-auto","wiki/2023-10-05-Cplusplus教学/ch18-1-auto","18.1",18010000,{"path":2953,"stem":2954,"title":2955,"date":2793,"chapter":2956,"chapterSort":2957,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-10-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki/2023-10-05-Cplusplus教学/ch18-10-右值引用和移动语义","右值引用和移动语义","18.10",18100000,{"path":2959,"stem":2960,"title":2961,"date":2793,"chapter":2962,"chapterSort":2963,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-11-lambda-biao-da-shi","wiki/2023-10-05-Cplusplus教学/ch18-11-Lambda表达式","Lambda 表达式","18.11",18110000,{"path":2965,"stem":2966,"title":2967,"date":2793,"chapter":2968,"chapterSort":2969,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-12-std-function","wiki/2023-10-05-Cplusplus教学/ch18-12-std-function","std::function","18.12",18120000,{"path":2971,"stem":2972,"title":2973,"date":2793,"chapter":2974,"chapterSort":2975,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-13-std-bind","wiki/2023-10-05-Cplusplus教学/ch18-13-std-bind","std::bind","18.13",18130000,{"path":2977,"stem":2978,"title":2979,"date":2793,"chapter":2980,"chapterSort":2981,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-14-std-optional","wiki/2023-10-05-Cplusplus教学/ch18-14-std-optional","std::optional","18.14",18140000,{"path":2983,"stem":2984,"title":2985,"date":2793,"chapter":2986,"chapterSort":2987,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-15-std-variant","wiki/2023-10-05-Cplusplus教学/ch18-15-std-variant","std::variant","18.15",18150000,{"path":2989,"stem":2990,"title":2991,"date":2793,"chapter":2992,"chapterSort":2993,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-16-std-span","wiki/2023-10-05-Cplusplus教学/ch18-16-std-span","std::span","18.16",18160000,{"path":2995,"stem":2996,"title":2997,"date":2793,"chapter":2998,"chapterSort":2999,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-17-std-format-print","wiki/2023-10-05-Cplusplus教学/ch18-17-std-format-print","std::format / std::print","18.17",18170000,{"path":2790,"stem":2799,"title":5,"date":2793,"chapter":2791,"chapterSort":2792,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},{"path":3002,"stem":3003,"title":3004,"date":2793,"chapter":3005,"chapterSort":3006,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-1-std-thread","wiki/2023-10-05-Cplusplus教学/ch18-19-1-std-thread","std::thread 与 join","18.19.1",18190100,{"path":3008,"stem":3009,"title":3010,"date":2793,"chapter":3011,"chapterSort":3012,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-2-mutex-lock-guard","wiki/2023-10-05-Cplusplus教学/ch18-19-2-mutex-lock-guard","mutex 与 lock_guard","18.19.2",18190200,{"path":3014,"stem":3015,"title":3016,"date":2793,"chapter":3017,"chapterSort":3018,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-3-std-atomic","wiki/2023-10-05-Cplusplus教学/ch18-19-3-std-atomic","std::atomic","18.19.3",18190300,{"path":3020,"stem":3021,"title":3022,"date":2793,"chapter":3023,"chapterSort":3024,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-4-condition-variable","wiki/2023-10-05-Cplusplus教学/ch18-19-4-condition-variable","condition_variable","18.19.4",18190400,{"path":3026,"stem":3027,"title":3028,"date":2793,"chapter":3029,"chapterSort":3030,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-19-bing-fa-bian-cheng","wiki/2023-10-05-Cplusplus教学/ch18-19-并发编程","并发编程","18.19",18190000,{"path":3032,"stem":3033,"title":3034,"date":2793,"chapter":3035,"chapterSort":3036,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-2-nullptr","wiki/2023-10-05-Cplusplus教学/ch18-2-nullptr","nullptr","18.2",18020000,{"path":3038,"stem":3039,"title":3040,"date":2793,"chapter":3041,"chapterSort":3042,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-20-std-filesystem","wiki/2023-10-05-Cplusplus教学/ch18-20-std-filesystem","std::filesystem","18.20",18200000,{"path":3044,"stem":3045,"title":3046,"date":2793,"chapter":3047,"chapterSort":3048,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-21-modules-jian-jie","wiki/2023-10-05-Cplusplus教学/ch18-21-modules简介","modules 简介","18.21",18210000,{"path":3050,"stem":3051,"title":144,"date":2793,"chapter":3052,"chapterSort":3053,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-3-using","wiki/2023-10-05-Cplusplus教学/ch18-3-using","18.3",18030000,{"path":3055,"stem":3056,"title":3057,"date":2793,"chapter":3058,"chapterSort":3059,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-4-enum-class","wiki/2023-10-05-Cplusplus教学/ch18-4-enum-class","enum class","18.4",18040000,{"path":3061,"stem":3062,"title":3063,"date":2793,"chapter":3064,"chapterSort":3065,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-5-fan-wei-for-xun-huan","wiki/2023-10-05-Cplusplus教学/ch18-5-范围for循环","范围 for 循环","18.5",18050000,{"path":3067,"stem":3068,"title":3069,"date":2793,"chapter":3070,"chapterSort":3071,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-6-jie-gou-hua-bang-ding","wiki/2023-10-05-Cplusplus教学/ch18-6-结构化绑定","结构化绑定","18.6",18060000,{"path":3073,"stem":3074,"title":3075,"date":2793,"chapter":3076,"chapterSort":3077,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-7-constexpr","wiki/2023-10-05-Cplusplus教学/ch18-7-constexpr","constexpr","18.7",18070000,{"path":3079,"stem":3080,"title":3081,"date":2793,"chapter":3082,"chapterSort":3083,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-8-raii","wiki/2023-10-05-Cplusplus教学/ch18-8-RAII","RAII","18.8",18080000,{"path":3085,"stem":3086,"title":3087,"date":2793,"chapter":3088,"chapterSort":3089,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-9-zhi-neng-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch18-9-智能指针","智能指针","18.9",18090000,{"path":3091,"stem":3092,"title":3093,"date":2793,"chapter":3094,"chapterSort":3095,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch18-xian-dai-c","wiki/2023-10-05-Cplusplus教学/ch18-现代C++","现代C++","18",18000000,{"path":3097,"stem":3098,"title":3099,"date":2793,"chapter":3100,"chapterSort":3101,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-1-ding-shi-qi-yu-yi-bu-io","wiki/2023-10-05-Cplusplus教学/ch19-1-1-定时器与异步IO","定时器与异步 IO","19.1.1",19010100,{"path":3103,"stem":3104,"title":3105,"date":2793,"chapter":3106,"chapterSort":3107,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-2-boost-asio-ji-chu","wiki/2023-10-05-Cplusplus教学/ch19-1-2-Boost.Asio基础","Boost.Asio 基础","19.1.2",19010200,{"path":3109,"stem":3110,"title":3111,"date":2793,"chapter":3112,"chapterSort":3113,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-3-chuan-kou-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-3-串口通信","串口通信","19.1.3",19010300,{"path":3115,"stem":3116,"title":3117,"date":2793,"chapter":3118,"chapterSort":3119,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-4-tcp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-4-TCP通信","TCP 通信","19.1.4",19010400,{"path":3121,"stem":3122,"title":3123,"date":2793,"chapter":3124,"chapterSort":3125,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-5-udp-tong-xin","wiki/2023-10-05-Cplusplus教学/ch19-1-5-UDP通信","UDP 通信","19.1.5",19010500,{"path":3127,"stem":3128,"title":3129,"date":2793,"chapter":3130,"chapterSort":3131,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-6-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki/2023-10-05-Cplusplus教学/ch19-1-6-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","19.1.6",19010600,{"path":3133,"stem":3134,"title":3135,"date":2793,"chapter":3136,"chapterSort":3137,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-1-boost-asio-yi-bu-io-ku","wiki/2023-10-05-Cplusplus教学/ch19-1-Boost.Asio异步IO库","Boost.Asio异步IO库","19.1",19010000,{"path":3139,"stem":3140,"title":3141,"date":2793,"chapter":3142,"chapterSort":3143,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-2-eigen-xian-xing-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-2-Eigen线性代数库","Eigen线性代数库","19.2",19020000,{"path":3145,"stem":3146,"title":3147,"date":2793,"chapter":3148,"chapterSort":3149,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-3-opencv-ji-suan-ji-shi-jue-ku","wiki/2023-10-05-Cplusplus教学/ch19-3-OpenCV计算机视觉库","OpenCV计算机视觉库","19.3",19030000,{"path":3151,"stem":3152,"title":3153,"date":2793,"chapter":3154,"chapterSort":3155,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-4-pcl-dian-yun-ku","wiki/2023-10-05-Cplusplus教学/ch19-4-PCL点云库","PCL点云库","19.4",19040000,{"path":3157,"stem":3158,"title":3159,"date":2793,"chapter":3160,"chapterSort":3161,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-5-sophus-li-qun-li-dai-shu-ku","wiki/2023-10-05-Cplusplus教学/ch19-5-Sophus李群李代数库","Sophus 李群李代数库","19.5",19050000,{"path":3163,"stem":3164,"title":3165,"date":2793,"chapter":3166,"chapterSort":3167,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch19-chang-yong-ku","wiki/2023-10-05-Cplusplus教学/ch19-常用库","常用库学习","19",19000000,{"path":3169,"stem":3170,"title":3171,"date":2793,"chapter":3172,"chapterSort":3173,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch2-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki/2023-10-05-Cplusplus教学/ch2-数据类型与数据存放","数据类型与数据存放","2",2000000,{"path":3175,"stem":3176,"title":3177,"date":2793,"chapter":3178,"chapterSort":3179,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch3-shu-ru-shu-chu","wiki/2023-10-05-Cplusplus教学/ch3-输入输出","输入输出","3",3000000,{"path":3181,"stem":3182,"title":3183,"date":2793,"chapter":3184,"chapterSort":3185,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch4-yun-suan-fu","wiki/2023-10-05-Cplusplus教学/ch4-运算符","运算符","4",4000000,{"path":3187,"stem":3188,"title":3189,"date":2793,"chapter":3190,"chapterSort":3191,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch5-cheng-xu-liu-cheng-jie-gou","wiki/2023-10-05-Cplusplus教学/ch5-程序流程结构","程序流程结构","5",5000000,{"path":3193,"stem":3194,"title":3195,"date":2793,"chapter":3196,"chapterSort":3197,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch6-shu-zu","wiki/2023-10-05-Cplusplus教学/ch6-数组","数组","6",6000000,{"path":3199,"stem":3200,"title":3201,"date":2793,"chapter":3202,"chapterSort":3203,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch7-han-shu-yu-tou-wen-jian","wiki/2023-10-05-Cplusplus教学/ch7-函数与头文件","函数与头文件","7",7000000,{"path":3205,"stem":3206,"title":3207,"date":2793,"chapter":3208,"chapterSort":3209,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch8-zhi-zhen","wiki/2023-10-05-Cplusplus教学/ch8-指针","指针","8",8000000,{"path":3211,"stem":3212,"title":3213,"date":2793,"chapter":3214,"chapterSort":3215,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":2800},"/zh-cn/wiki/2023-10-05-cplusplus-jiao-xue/ch9-jie-gou-ti-yu-gong-yong-ti","wiki/2023-10-05-Cplusplus教学/ch9-结构体与共用体","结构体与共用体","9",9000000,{"path":2796,"stem":3217,"title":3218,"date":2793,"chapter":2801,"chapterSort":3219,"docKey":2795,"docRoot":2796,"docTitle":2797,"isWikiDoc":166,"isWikiIndex":166},"wiki/2023-10-05-Cplusplus教学/index","C/C++教程",0,{"variants":3221},[3222,3225,3228,3231,3234],{"path":3223,"localeSlug":3224,"i18nKey":2799},"/en-us/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","en-us",{"path":3226,"localeSlug":3227,"i18nKey":2799},"/zh-hant/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","zh-hant",{"path":3229,"localeSlug":3230,"i18nKey":2799},"/zh-hk/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","zh-hk",{"path":3232,"localeSlug":3233,"i18nKey":2799},"/zh-tw/wiki/2023-10-05-cplusplus-jiao-xue/ch18-18-std-chrono","zh-tw",{"path":2790,"localeSlug":2804,"i18nKey":2799},[3223,2802,3226,2802,3229,2802,3232,2802,2790,2802],1780663037581]