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