[{"data":1,"prerenderedAt":1206},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban":3,"wiki-doc-items-2023-10-05-cplusplus-jiao-xue":828},{"id":4,"title":5,"body":6,"chapterDepth":814,"chapterOrder":815,"date":816,"description":12,"docKey":817,"docRoot":818,"docTitle":819,"extension":820,"isWikiDoc":821,"isWikiIndex":822,"meta":823,"navigation":821,"path":824,"seo":825,"stem":826,"wikiDepth":197,"__hash__":827},"wiki\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板.md","CMake工程模板",{"type":7,"value":8,"toc":802},"minimark",[9,13,16,56,60,63,73,76,177,180,183,186,239,242,280,283,340,343,352,358,362,365,369,382,390,401,404,419,433,435,448,455,458,464,467,473,476,482,497,501,504,536,539,625,629,632,635,694,697,703,709,712,736,744,747,775,778,798],[10,11,12],"p",{},"本章用一个 Linux-only 的 CMake 工程模板来讲解 C++ 项目如何组织、构建、安装和引入第三方库。",[10,14,15],{},"这个模板的目标不是把 CMake 所有语法一次讲完，而是围绕一个真实可运行的工程，理解现代 CMake 最常用的一套写法：",[17,18,19,28,34,40,46,49],"ol",{},[20,21,22,23,27],"li",{},"顶层 ",[24,25,26],"code",{},"CMakeLists.txt"," 只做工程总控。",[20,29,30,33],{},[24,31,32],{},"CMakePresets.json"," 固化 Debug \u002F Release 构建配置。",[20,35,36,39],{},[24,37,38],{},"cmake\u002FProjectOptions.cmake"," 保存项目公共编译选项。",[20,41,42,45],{},[24,43,44],{},"src\u002FCMakeLists.txt"," 管理主程序。",[20,47,48],{},"每个库目录自己管理源码、头文件、安装规则和第三方依赖。",[20,50,51,52,55],{},"第三方库采用\"谁使用，谁 ",[24,53,54],{},"find_package","\"的方式。",[57,58,59],"h2",{"id":59},"模板目录结构",[10,61,62],{},"模板的核心目录如下：",[64,65,71],"pre",{"className":66,"code":68,"language":69,"meta":70},[67],"language-text",".\n├── CMakeLists.txt\n├── CMakePresets.json\n├── cmake\u002F\n│   └── ProjectOptions.cmake\n└── src\u002F\n    ├── CMakeLists.txt\n    ├── main.cpp\n    ├── lib1\u002F\n    │   ├── CMakeLists.txt\n    │   ├── inc\u002F\n    │   │   └── lib1\u002F\n    │   │       └── eigen3_test.hpp\n    │   └── src\u002F\n    │       └── eigen3_test.cpp\n    └── lib2\u002F\n        ├── CMakeLists.txt\n        ├── inc\u002F\n        │   └── lib2\u002F\n        │       └── eigen3_test.hpp\n        └── src\u002F\n            └── eigen3_test.cpp\n","text","",[24,72,68],{"__ignoreMap":70},[10,74,75],{},"其中：",[77,78,79,93],"table",{},[80,81,82],"thead",{},[83,84,85,90],"tr",{},[86,87,89],"th",{"align":88},"left","文件",[86,91,92],{"align":88},"职责",[94,95,96,109,125,134,150,164],"tbody",{},[83,97,98,103],{},[99,100,101],"td",{"align":88},[24,102,26],{},[99,104,105,106],{"align":88},"顶层入口，声明项目、加载公共配置、进入 ",[24,107,108],{},"src",[83,110,111,115],{},[99,112,113],{"align":88},[24,114,32],{},[99,116,117,118,121,122],{"align":88},"保存构建预设，例如 ",[24,119,120],{},"linux-debug"," 和 ",[24,123,124],{},"linux-release",[83,126,127,131],{},[99,128,129],{"align":88},[24,130,38],{},[99,132,133],{"align":88},"保存 C\u002FC++ 标准、公共 warning 等配置",[83,135,136,140],{},[99,137,138],{"align":88},[24,139,44],{},[99,141,142,143,146,147],{"align":88},"创建最终可执行文件，并链接 ",[24,144,145],{},"lib1","、",[24,148,149],{},"lib2",[83,151,152,157],{},[99,153,154],{"align":88},[24,155,156],{},"src\u002Flib1\u002FCMakeLists.txt",[99,158,159,160,163],{"align":88},"创建 ",[24,161,162],{},"lib1_src_lib","，管理 lib1 自己的 include、依赖、安装",[83,165,166,171],{},[99,167,168],{"align":88},[24,169,170],{},"src\u002Flib2\u002FCMakeLists.txt",[99,172,159,173,176],{"align":88},[24,174,175],{},"lib2_src_lib","，管理 lib2 自己的 include、依赖、安装",[57,178,179],{"id":179},"构建命令",[10,181,182],{},"这个模板使用 CMakePresets + Ninja。",[10,184,185],{},"Debug 构建：",[64,187,191],{"className":188,"code":189,"language":190,"meta":70,"style":70},"language-bash shiki shiki-themes github-light github-dark","cmake --preset linux-debug\ncmake --build --preset linux-debug\ncmake --install build\u002Flinux-debug\n.\u002Finstall\u002Flinux-debug\u002Fbin\u002Fcmake_template\n","bash",[24,192,193,210,222,233],{"__ignoreMap":70},[194,195,198,202,206],"span",{"class":196,"line":197},"line",1,[194,199,201],{"class":200},"sScJk","cmake",[194,203,205],{"class":204},"sj4cs"," --preset",[194,207,209],{"class":208},"sZZnC"," linux-debug\n",[194,211,213,215,218,220],{"class":196,"line":212},2,[194,214,201],{"class":200},[194,216,217],{"class":204}," --build",[194,219,205],{"class":204},[194,221,209],{"class":208},[194,223,225,227,230],{"class":196,"line":224},3,[194,226,201],{"class":200},[194,228,229],{"class":204}," --install",[194,231,232],{"class":208}," build\u002Flinux-debug\n",[194,234,236],{"class":196,"line":235},4,[194,237,238],{"class":200},".\u002Finstall\u002Flinux-debug\u002Fbin\u002Fcmake_template\n",[10,240,241],{},"Release 构建：",[64,243,245],{"className":188,"code":244,"language":190,"meta":70,"style":70},"cmake --preset linux-release\ncmake --build --preset linux-release\ncmake --install build\u002Flinux-release\n.\u002Finstall\u002Flinux-release\u002Fbin\u002Fcmake_template\n",[24,246,247,256,266,275],{"__ignoreMap":70},[194,248,249,251,253],{"class":196,"line":197},[194,250,201],{"class":200},[194,252,205],{"class":204},[194,254,255],{"class":208}," linux-release\n",[194,257,258,260,262,264],{"class":196,"line":212},[194,259,201],{"class":200},[194,261,217],{"class":204},[194,263,205],{"class":204},[194,265,255],{"class":208},[194,267,268,270,272],{"class":196,"line":224},[194,269,201],{"class":200},[194,271,229],{"class":204},[194,273,274],{"class":208}," build\u002Flinux-release\n",[194,276,277],{"class":196,"line":235},[194,278,279],{"class":200},".\u002Finstall\u002Flinux-release\u002Fbin\u002Fcmake_template\n",[10,281,282],{},"这几条命令分别做了四件事：",[77,284,285,295],{},[80,286,287],{},[83,288,289,292],{},[86,290,291],{"align":88},"命令",[86,293,294],{"align":88},"作用",[94,296,297,307,317,330],{},[83,298,299,304],{},[99,300,301],{"align":88},[24,302,303],{},"cmake --preset linux-debug",[99,305,306],{"align":88},"配置工程，生成 Ninja 构建文件",[83,308,309,314],{},[99,310,311],{"align":88},[24,312,313],{},"cmake --build --preset linux-debug",[99,315,316],{"align":88},"编译源码并链接目标",[83,318,319,324],{},[99,320,321],{"align":88},[24,322,323],{},"cmake --install build\u002Flinux-debug",[99,325,326,327],{"align":88},"把可执行文件、库、头文件安装到 ",[24,328,329],{},"install\u002Flinux-debug",[83,331,332,337],{},[99,333,334],{"align":88},[24,335,336],{},".\u002Finstall\u002Flinux-debug\u002Fbin\u002Fcmake_template",[99,338,339],{"align":88},"运行安装后的程序",[10,341,342],{},"日常开发时，不需要每次都安装。编译后可以直接运行 build 目录里的程序：",[64,344,346],{"className":188,"code":345,"language":190,"meta":70,"style":70},".\u002Fbuild\u002Flinux-debug\u002Fsrc\u002Fcmake_template\n",[24,347,348],{"__ignoreMap":70},[194,349,350],{"class":196,"line":197},[194,351,345],{"class":200},[10,353,354,357],{},[24,355,356],{},"install"," 更适合用来验证\"安装后的目录结构和动态库路径是否正确\"。",[57,359,361],{"id":360},"configurebuildinstall-的区别","configure、build、install 的区别",[10,363,364],{},"CMake 工程一般有三个阶段：",[366,367,368],"h3",{"id":368},"configure",[64,370,372],{"className":188,"code":371,"language":190,"meta":70,"style":70},"cmake --preset linux-debug\n",[24,373,374],{"__ignoreMap":70},[194,375,376,378,380],{"class":196,"line":197},[194,377,201],{"class":200},[194,379,205],{"class":204},[194,381,209],{"class":208},[10,383,384,385,121,387,389],{},"这个阶段读取所有 ",[24,386,26],{},[24,388,32],{},"，检查编译器、第三方库、变量，并生成构建系统文件。",[10,391,392,393,396,397,400],{},"使用 Ninja 时，会在 ",[24,394,395],{},"build\u002Flinux-debug"," 下生成 ",[24,398,399],{},"build.ninja","。",[366,402,403],{"id":403},"build",[64,405,407],{"className":188,"code":406,"language":190,"meta":70,"style":70},"cmake --build --preset linux-debug\n",[24,408,409],{"__ignoreMap":70},[194,410,411,413,415,417],{"class":196,"line":197},[194,412,201],{"class":200},[194,414,217],{"class":204},[194,416,205],{"class":204},[194,418,209],{"class":208},[10,420,421,422,425,426,146,429,432],{},"这个阶段调用 Ninja 编译 ",[24,423,424],{},".cpp"," 文件，生成 ",[24,427,428],{},".o",[24,430,431],{},".so","、可执行文件等构建产物。",[366,434,356],{"id":356},[64,436,438],{"className":188,"code":437,"language":190,"meta":70,"style":70},"cmake --install build\u002Flinux-debug\n",[24,439,440],{"__ignoreMap":70},[194,441,442,444,446],{"class":196,"line":197},[194,443,201],{"class":200},[194,445,229],{"class":204},[194,447,232],{"class":208},[10,449,450,451,454],{},"这个阶段按照 ",[24,452,453],{},"install(...)"," 规则，把构建产物复制到安装目录。",[10,456,457],{},"在本模板中，Debug 安装到：",[64,459,462],{"className":460,"code":461,"language":69,"meta":70},[67],"install\u002Flinux-debug\u002F\n",[24,463,461],{"__ignoreMap":70},[10,465,466],{},"Release 安装到：",[64,468,471],{"className":469,"code":470,"language":69,"meta":70},[67],"install\u002Flinux-release\u002F\n",[24,472,470],{"__ignoreMap":70},[10,474,475],{},"安装后的典型结构如下：",[64,477,480],{"className":478,"code":479,"language":69,"meta":70},[67],"install\u002Flinux-debug\u002F\n├── bin\u002F\n│   └── cmake_template\n├── include\u002F\n│   ├── lib1\u002F\n│   │   └── eigen3_test.hpp\n│   └── lib2\u002F\n│       └── eigen3_test.hpp\n└── lib64\u002F\n    ├── liblib1_src_lib.so\n    └── liblib2_src_lib.so\n",[24,481,479],{"__ignoreMap":70},[10,483,484,485,488,489,492,493,496],{},"有些 Linux 发行版会使用 ",[24,486,487],{},"lib","，有些会使用 ",[24,490,491],{},"lib64","。本模板通过 ",[24,494,495],{},"GNUInstallDirs"," 让 CMake 自动选择合适目录。",[57,498,500],{"id":499},"为什么不用手写-buildinstalllog-脚本","为什么不用手写 build\u002Finstall\u002Flog 脚本",[10,502,503],{},"旧式模板里常见这种做法：",[17,505,506,512,521,527,533],{},[20,507,508,509,511],{},"自己创建 ",[24,510,403],{}," 目录。",[20,513,514,515,517,518,400],{},"在 ",[24,516,403],{}," 里执行 ",[24,519,520],{},"cmake ..",[20,522,523,524,400],{},"手写 ",[24,525,526],{},"make install",[20,528,529,530,400],{},"手写脚本设置 ",[24,531,532],{},"LD_LIBRARY_PATH",[20,534,535],{},"自己维护日志目录。",[10,537,538],{},"这个模板改成 CMakePresets 后，这些内容都不再需要：",[77,540,541,551],{},[80,542,543],{},[83,544,545,548],{},[86,546,547],{"align":88},"旧做法",[86,549,550],{"align":88},"新做法",[94,552,553,569,580,590,598,609,617],{},[83,554,555,561],{},[99,556,557,558],{"align":88},"手动 ",[24,559,560],{},"cd build",[99,562,563,565,566],{"align":88},[24,564,32],{}," 统一设置 ",[24,567,568],{},"binaryDir",[83,570,571,574],{},[99,572,573],{"align":88},"手动设置 Debug \u002F Release",[99,575,576,577],{"align":88},"preset 里设置 ",[24,578,579],{},"CMAKE_BUILD_TYPE",[83,581,582,585],{},[99,583,584],{"align":88},"手动设置安装路径",[99,586,576,587],{"align":88},[24,588,589],{},"CMAKE_INSTALL_PREFIX",[83,591,592,595],{},[99,593,594],{"align":88},"手动调用 Makefile",[99,596,597],{"align":88},"preset 指定 Ninja",[83,599,600,603],{},[99,601,602],{"align":88},"手动设置动态库路径",[99,604,605,606],{"align":88},"安装目标设置 ",[24,607,608],{},"INSTALL_RPATH",[83,610,611,614],{},[99,612,613],{"align":88},"手写 VSCode task",[99,615,616],{"align":88},"VSCode CMake Tools 直接读取 preset",[83,618,619,622],{},[99,620,621],{"align":88},"手写复杂调试脚本",[99,623,624],{"align":88},"VSCode CMake Tools 直接运行或调试当前 CMake target",[57,626,628],{"id":627},"vscode-cmake-tools-运行与调试","VSCode CMake Tools 运行与调试",[10,630,631],{},"这个模板不需要额外写 VSCode 调试配置。安装 CMake Tools 后，VSCode 可以直接识别 CMake 里的可执行 target，并对当前 target 执行运行或调试。",[10,633,634],{},"图形化流程可以理解成命令行流程的按钮版本：",[77,636,637,647],{},[80,638,639],{},[83,640,641,644],{},[86,642,643],{"align":88},"命令行",[86,645,646],{"align":88},"VSCode CMake Tools",[94,648,649,662,671,684],{},[83,650,651,655],{},[99,652,653],{"align":88},[24,654,303],{},[99,656,657,658,661],{"align":88},"选择 ",[24,659,660],{},"Linux Debug"," preset 后 Configure",[83,663,664,668],{},[99,665,666],{"align":88},[24,667,313],{},[99,669,670],{"align":88},"点击 Build",[83,672,673,678],{},[99,674,675],{"align":88},[24,676,677],{},".\u002Fbuild\u002Flinux-debug\u002Fsrc\u002Fcmake_template",[99,679,657,680,683],{"align":88},[24,681,682],{},"cmake_template"," target 后点击运行按钮",[83,685,686,689],{},[99,687,688],{"align":88},"用 GDB 调试 build 目录产物",[99,690,657,691,693],{"align":88},[24,692,682],{}," target 后点击 Debug 按钮",[10,695,696],{},"CMake Tools 运行或调试的通常是 build 目录里的可执行文件：",[64,698,701],{"className":699,"code":700,"language":69,"meta":70},[67],"build\u002Flinux-debug\u002Fsrc\u002Fcmake_template\n",[24,702,700],{"__ignoreMap":70},[10,704,705,706,708],{},"因此日常开发不需要每次 install。",[24,707,356],{}," 主要用于验证安装布局、头文件安装、动态库 RPATH 等内容。",[10,710,711],{},"推荐流程：",[17,713,714,717,722,725,728,733],{},[20,715,716],{},"安装 VSCode CMake Tools 扩展和 Microsoft C\u002FC++ 扩展。",[20,718,657,719,721],{},[24,720,120],{}," configure preset。",[20,723,724],{},"Configure。",[20,726,727],{},"Build。",[20,729,657,730,732],{},[24,731,682],{}," 作为运行\u002F调试 target。",[20,734,735],{},"点击 CMake Tools 提供的运行按钮或 Debug 按钮。",[10,737,738,739,400],{},"更详细的图形界面操作步骤见 ",[740,741,743],"a",{"href":742},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","CMakePresets与构建安装",[57,745,746],{"id":746},"本章建议阅读顺序",[17,748,749,754,761,768],{},[20,750,751,753],{},[740,752,743],{"href":742},"：先理解 preset 工作流。",[20,755,756,760],{},[740,757,759],{"href":758},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","顶层CMake与公共编译选项","：理解顶层入口和公共配置。",[20,762,763,767],{},[740,764,766],{"href":765},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","src与lib模块CMake详解","：理解可执行文件、库、include、install。",[20,769,770,774],{},[740,771,773],{"href":772},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","第三方库依赖写法","：学习 Eigen、OpenCV、Boost、PCL 等库如何引入。",[10,776,777],{},"学完后，你应该能做到：",[17,779,780,783,786,789,792,795],{},[20,781,782],{},"新建一个 C++ 工程并用 preset 构建。",[20,784,785],{},"添加新的库目录。",[20,787,788],{},"添加新的可执行文件。",[20,790,791],{},"正确管理头文件 include 路径。",[20,793,794],{},"在模块内部引入第三方库。",[20,796,797],{},"安装后直接运行程序，不依赖手写脚本。",[799,800,801],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":70,"searchDepth":212,"depth":212,"links":803},[804,805,806,811,812,813],{"id":59,"depth":212,"text":59},{"id":179,"depth":212,"text":179},{"id":360,"depth":212,"text":361,"children":807},[808,809,810],{"id":368,"depth":224,"text":368},{"id":403,"depth":224,"text":403},{"id":356,"depth":224,"text":356},{"id":499,"depth":212,"text":500},{"id":627,"depth":212,"text":628},{"id":746,"depth":212,"text":746},0,"2200","2023-10-05","2023-10-05-cplusplus-jiao-xue","\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md",true,false,{},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban",{"title":5,"description":12},"wiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","DZklaXIatdmLIejfGm0kUAmpHFweFh6SvwpF6XMcBfs",[829,834,839,844,849,854,859,864,869,874,879,884,889,894,899,904,909,914,919,924,929,934,939,944,949,954,959,964,969,974,979,984,989,994,999,1004,1009,1014,1019,1024,1029,1034,1039,1044,1049,1054,1059,1064,1069,1074,1079,1084,1089,1094,1099,1104,1109,1114,1119,1124,1129,1134,1139,1144,1149,1154,1159,1164,1169,1174,1179,1184,1187,1190,1193,1196,1201,1202],{"path":830,"stem":831,"title":832,"date":816,"chapterOrder":833,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++开发环境搭建与测试","0100",{"path":835,"stem":836,"title":837,"date":816,"chapterOrder":838,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++基础初识","0200",{"path":840,"stem":841,"title":842,"date":816,"chapterOrder":843,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","wiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","数据类型与数据存放","0300",{"path":845,"stem":846,"title":847,"date":816,"chapterOrder":848,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","wiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","输入输出","0400",{"path":850,"stem":851,"title":852,"date":816,"chapterOrder":853,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","wiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","运算符","0500",{"path":855,"stem":856,"title":857,"date":816,"chapterOrder":858,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","wiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","程序流程结构","0600",{"path":860,"stem":861,"title":862,"date":816,"chapterOrder":863,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","wiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","数组","0700",{"path":865,"stem":866,"title":867,"date":816,"chapterOrder":868,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","wiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","函数与头文件","0800",{"path":870,"stem":871,"title":872,"date":816,"chapterOrder":873,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","指针","0900",{"path":875,"stem":876,"title":877,"date":816,"chapterOrder":878,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","wiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","结构体与共用体","1000",{"path":880,"stem":881,"title":882,"date":816,"chapterOrder":883,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","内存分区与生命周期","1100",{"path":885,"stem":886,"title":887,"date":816,"chapterOrder":888,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","wiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","引用","1200",{"path":890,"stem":891,"title":892,"date":816,"chapterOrder":893,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","wiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","函数提高与命名空间","1300",{"path":895,"stem":896,"title":897,"date":816,"chapterOrder":898,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","封装","1400-0100",{"path":900,"stem":901,"title":902,"date":816,"chapterOrder":903,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","对象初始化和清理","1400-0200",{"path":905,"stem":906,"title":907,"date":816,"chapterOrder":908,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","对象模型与this指针","1400-0300",{"path":910,"stem":911,"title":912,"date":816,"chapterOrder":913,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","友元与运算符重载","1400-0400",{"path":915,"stem":916,"title":917,"date":816,"chapterOrder":918,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","继承","1400-0500",{"path":920,"stem":921,"title":922,"date":816,"chapterOrder":923,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","多态","1400-0600",{"path":925,"stem":926,"title":927,"date":816,"chapterOrder":928,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","wiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","类和对象","1400",{"path":930,"stem":931,"title":932,"date":816,"chapterOrder":933,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","wiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","文件操作","1500",{"path":935,"stem":936,"title":937,"date":816,"chapterOrder":938,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","wiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理","1600",{"path":940,"stem":941,"title":942,"date":816,"chapterOrder":943,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","wiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","模板","1700",{"path":945,"stem":946,"title":947,"date":816,"chapterOrder":948,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","STL初识","1800-0100",{"path":950,"stem":951,"title":952,"date":816,"chapterOrder":953,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":955,"stem":956,"title":957,"date":816,"chapterOrder":958,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string容器","1800-0300",{"path":960,"stem":961,"title":962,"date":816,"chapterOrder":963,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-yu-deque-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector与deque容器","vector与deque容器","1800-0400",{"path":965,"stem":966,"title":967,"date":816,"chapterOrder":968,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-stack-queue-list-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-stack-queue-list容器","stack \u002F queue \u002F list 容器","1800-0500",{"path":970,"stem":971,"title":972,"date":816,"chapterOrder":973,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-set-map-rong-qi","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-set-map容器","set \u002F map 容器","1800-0600",{"path":975,"stem":976,"title":977,"date":816,"chapterOrder":978,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-han-shu-dui-xiang-yu-wei-ci","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-函数对象与谓词","函数对象与谓词","1800-0700",{"path":980,"stem":981,"title":982,"date":816,"chapterOrder":983,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-chang-yong-suan-fa","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-常用算法","常用算法","1800-0800",{"path":985,"stem":986,"title":987,"date":816,"chapterOrder":988,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","STL提高编程","1800",{"path":990,"stem":991,"title":992,"date":816,"chapterOrder":993,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","wiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++类型转换","1900",{"path":995,"stem":996,"title":997,"date":816,"chapterOrder":998,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":1000,"stem":1001,"title":1002,"date":816,"chapterOrder":1003,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":1005,"stem":1006,"title":1007,"date":816,"chapterOrder":1008,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":1010,"stem":1011,"title":1012,"date":816,"chapterOrder":1013,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","enum class","2000-0400",{"path":1015,"stem":1016,"title":1017,"date":816,"chapterOrder":1018,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","范围 for 循环","2000-0500",{"path":1020,"stem":1021,"title":1022,"date":816,"chapterOrder":1023,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","结构化绑定","2000-0600",{"path":1025,"stem":1026,"title":1027,"date":816,"chapterOrder":1028,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr","2000-0700",{"path":1030,"stem":1031,"title":1032,"date":816,"chapterOrder":1033,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":1035,"stem":1036,"title":1037,"date":816,"chapterOrder":1038,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","智能指针","2000-0900",{"path":1040,"stem":1041,"title":1042,"date":816,"chapterOrder":1043,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","右值引用和移动语义","2000-1000",{"path":1045,"stem":1046,"title":1047,"date":816,"chapterOrder":1048,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda 表达式","2000-1100",{"path":1050,"stem":1051,"title":1052,"date":816,"chapterOrder":1053,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function","2000-1200",{"path":1055,"stem":1056,"title":1057,"date":816,"chapterOrder":1058,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":1060,"stem":1061,"title":1062,"date":816,"chapterOrder":1063,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":1065,"stem":1066,"title":1067,"date":816,"chapterOrder":1068,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":1070,"stem":1071,"title":1072,"date":816,"chapterOrder":1073,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":1075,"stem":1076,"title":1077,"date":816,"chapterOrder":1078,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":1080,"stem":1081,"title":1082,"date":816,"chapterOrder":1083,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":1085,"stem":1086,"title":1087,"date":816,"chapterOrder":1088,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread 与 join","2000-1900-0100",{"path":1090,"stem":1091,"title":1092,"date":816,"chapterOrder":1093,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 与 lock_guard","2000-1900-0200",{"path":1095,"stem":1096,"title":1097,"date":816,"chapterOrder":1098,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","std::atomic","2000-1900-0300",{"path":1100,"stem":1101,"title":1102,"date":816,"chapterOrder":1103,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":1105,"stem":1106,"title":1107,"date":816,"chapterOrder":1108,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","并发编程","2000-1900",{"path":1110,"stem":1111,"title":1112,"date":816,"chapterOrder":1113,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":1115,"stem":1116,"title":1117,"date":816,"chapterOrder":1118,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","modules 简介","2000-2100",{"path":1120,"stem":1121,"title":1122,"date":816,"chapterOrder":1123,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","wiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","现代C++","2000",{"path":1125,"stem":1126,"title":1127,"date":816,"chapterOrder":1128,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","定时器与异步 IO","2100-0100-0100",{"path":1130,"stem":1131,"title":1132,"date":816,"chapterOrder":1133,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio 基础","2100-0100-0200",{"path":1135,"stem":1136,"title":1137,"date":816,"chapterOrder":1138,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","串口通信","2100-0100-0300",{"path":1140,"stem":1141,"title":1142,"date":816,"chapterOrder":1143,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP 通信","2100-0100-0400",{"path":1145,"stem":1146,"title":1147,"date":816,"chapterOrder":1148,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP 通信","2100-0100-0500",{"path":1150,"stem":1151,"title":1152,"date":816,"chapterOrder":1153,"chapterDepth":212,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","机器人工程写法与 ROS2 集成","2100-0100-0600",{"path":1155,"stem":1156,"title":1157,"date":816,"chapterOrder":1158,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio异步IO库","2100-0100",{"path":1160,"stem":1161,"title":1162,"date":816,"chapterOrder":1163,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen线性代数库","2100-0200",{"path":1165,"stem":1166,"title":1167,"date":816,"chapterOrder":1168,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV计算机视觉库","2100-0300",{"path":1170,"stem":1171,"title":1172,"date":816,"chapterOrder":1173,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL点云库","2100-0400",{"path":1175,"stem":1176,"title":1177,"date":816,"chapterOrder":1178,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus 李群李代数库","2100-0500",{"path":1180,"stem":1181,"title":1182,"date":816,"chapterOrder":1183,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","wiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","常用库学习","2100",{"path":742,"stem":1185,"title":743,"date":816,"chapterOrder":1186,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","2200-0100",{"path":758,"stem":1188,"title":759,"date":816,"chapterOrder":1189,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","2200-0200",{"path":765,"stem":1191,"title":766,"date":816,"chapterOrder":1192,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","2200-0300",{"path":772,"stem":1194,"title":773,"date":816,"chapterOrder":1195,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","2200-0400",{"path":1197,"stem":1198,"title":1199,"date":816,"chapterOrder":1200,"chapterDepth":197,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","wiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","模板扩展与常见问题","2200-0500",{"path":824,"stem":826,"title":5,"date":816,"chapterOrder":815,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":822},{"path":818,"stem":1203,"title":1204,"date":816,"chapterOrder":1205,"chapterDepth":814,"docKey":817,"docRoot":818,"docTitle":819,"isWikiDoc":821,"isWikiIndex":821},"wiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++教程",null,1784505235557]