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