[{"data":1,"prerenderedAt":3788},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem":3367,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem":3772,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem":3787},{"id":4,"title":5,"body":6,"canonicalPath":3349,"chapterDepth":74,"chapterOrder":3350,"date":3351,"description":67,"docI18nKey":3352,"docKey":3353,"docRoot":3354,"docTitle":3355,"extension":3356,"i18nKey":3357,"isBlogPost":3358,"isWikiDoc":122,"isWikiIndex":3358,"layout":3359,"legacyPath":3359,"locale":3360,"localeSlug":3361,"meta":3362,"navigation":122,"path":3349,"seo":3363,"sourcePath":3364,"sourceStem":3357,"stem":3365,"wikiDepth":74,"__hash__":3366},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem.md","std::filesystem",{"type":7,"value":8,"toc":3327},"minimark",[9,14,27,37,41,50,54,57,61,83,87,365,369,524,528,533,841,847,855,859,1111,1117,1123,1127,1598,1604,1610,1614,2120,2126,2132,2136,2139,2143,2146,2149,2240,2243,2263,2289,2319,2330,2351,2434,2447,2606,2622,2626,2629,2687,2729,2733,3025,3029,3035,3041,3045,3050,3079,3085,3096,3119,3126,3133,3154,3168,3177,3188,3191,3210,3213,3269,3273,3323],[10,11,13],"h2",{"id":12},"what-problem-does-this-section-solve","What problem does this section solve?",[15,16,17,18,22,23,26],"p",{},"Prior to C++17, performing file and directory operations—such as traversing, creating, deleting, or checking for existence—relied on platform-specific APIs (e.g., POSIX's ",[19,20,21],"code",{},"\u003Cdirent.h>",", Windows' ",[19,24,25],{},"FindFirstFile","), preventing code from being cross-platform.",[15,28,29,31,32,36],{},[19,30,5],{}," provides ",[33,34,35],"strong",{},"cross-platform file system operations",", where a single codebase works across Linux, macOS, and Windows.",[10,38,40],{"id":39},"what-is-this-feature","What is this feature?",[15,42,43,45,46,49],{},[19,44,5],{}," is a file system library introduced in C++17 that provides features like path handling, file\u002Fdirectory operations, traversal, and permission queries. The core class is ",[19,47,48],{},"std::filesystem::path",".",[10,51,53],{"id":52},"c-standard-version","C++ standard version",[15,55,56],{},"C++17",[10,58,60],{"id":59},"required-header-files","Required header files",[62,63,68],"pre",{"className":64,"code":65,"language":66,"meta":67,"style":67},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Cfilesystem>\n","cpp","",[19,69,70],{"__ignoreMap":67},[71,72,75,79],"span",{"class":73,"line":74},"line",1,[71,76,78],{"class":77},"szBVR","#include",[71,80,82],{"class":81},"sZZnC"," \u003Cfilesystem>\n",[10,84,86],{"id":85},"basic-syntax","Basic Syntax",[62,88,90],{"className":64,"code":89,"language":66,"meta":67,"style":67},"namespace fs = std::filesystem;\n\nfs::path p = \"\u002Fhome\u002Fuser\u002Fdata.txt\";  \u002F\u002F 路径对象\n\n\u002F\u002F 检查文件\nfs::exists(p);          \u002F\u002F 是否存在\nfs::is_regular_file(p); \u002F\u002F 是否是普通文件\nfs::is_directory(p);    \u002F\u002F 是否是目录\nfs::file_size(p);       \u002F\u002F 文件大小\n\n\u002F\u002F 操作\nfs::create_directory(p);     \u002F\u002F 创建目录\nfs::copy(src, dst);           \u002F\u002F 拷贝文件\nfs::remove(p);                \u002F\u002F 删除文件\u002F目录\nfs::rename(old, new);         \u002F\u002F 重命名\n\n\u002F\u002F 遍历\nfor (const auto& entry : fs::directory_iterator(p)) { ... }      \u002F\u002F 非递归\nfor (const auto& entry : fs::recursive_directory_iterator(p)) {} \u002F\u002F 递归\n",[19,91,92,117,124,146,151,157,173,188,203,218,223,229,244,260,275,297,302,308,339],{"__ignoreMap":67},[71,93,94,97,101,104,107,111,114],{"class":73,"line":74},[71,95,96],{"class":77},"namespace",[71,98,100],{"class":99},"sScJk"," fs",[71,102,103],{"class":77}," =",[71,105,106],{"class":99}," std",[71,108,110],{"class":109},"sVt8B","::",[71,112,113],{"class":99},"filesystem",[71,115,116],{"class":109},";\n",[71,118,120],{"class":73,"line":119},2,[71,121,123],{"emptyLinePlaceholder":122},true,"\n",[71,125,127,130,133,136,139,142],{"class":73,"line":126},3,[71,128,129],{"class":99},"fs",[71,131,132],{"class":109},"::path p ",[71,134,135],{"class":77},"=",[71,137,138],{"class":81}," \"\u002Fhome\u002Fuser\u002Fdata.txt\"",[71,140,141],{"class":109},";",[71,143,145],{"class":144},"sJ8bj","  \u002F\u002F 路径对象\n",[71,147,149],{"class":73,"line":148},4,[71,150,123],{"emptyLinePlaceholder":122},[71,152,154],{"class":73,"line":153},5,[71,155,156],{"class":144},"\u002F\u002F 检查文件\n",[71,158,160,162,164,167,170],{"class":73,"line":159},6,[71,161,129],{"class":99},[71,163,110],{"class":109},[71,165,166],{"class":99},"exists",[71,168,169],{"class":109},"(p);",[71,171,172],{"class":144},"          \u002F\u002F 是否存在\n",[71,174,176,178,180,183,185],{"class":73,"line":175},7,[71,177,129],{"class":99},[71,179,110],{"class":109},[71,181,182],{"class":99},"is_regular_file",[71,184,169],{"class":109},[71,186,187],{"class":144}," \u002F\u002F 是否是普通文件\n",[71,189,191,193,195,198,200],{"class":73,"line":190},8,[71,192,129],{"class":99},[71,194,110],{"class":109},[71,196,197],{"class":99},"is_directory",[71,199,169],{"class":109},[71,201,202],{"class":144},"    \u002F\u002F 是否是目录\n",[71,204,206,208,210,213,215],{"class":73,"line":205},9,[71,207,129],{"class":99},[71,209,110],{"class":109},[71,211,212],{"class":99},"file_size",[71,214,169],{"class":109},[71,216,217],{"class":144},"       \u002F\u002F 文件大小\n",[71,219,221],{"class":73,"line":220},10,[71,222,123],{"emptyLinePlaceholder":122},[71,224,226],{"class":73,"line":225},11,[71,227,228],{"class":144},"\u002F\u002F 操作\n",[71,230,232,234,236,239,241],{"class":73,"line":231},12,[71,233,129],{"class":99},[71,235,110],{"class":109},[71,237,238],{"class":99},"create_directory",[71,240,169],{"class":109},[71,242,243],{"class":144},"     \u002F\u002F 创建目录\n",[71,245,247,249,251,254,257],{"class":73,"line":246},13,[71,248,129],{"class":99},[71,250,110],{"class":109},[71,252,253],{"class":99},"copy",[71,255,256],{"class":109},"(src, dst);",[71,258,259],{"class":144},"           \u002F\u002F 拷贝文件\n",[71,261,263,265,267,270,272],{"class":73,"line":262},14,[71,264,129],{"class":99},[71,266,110],{"class":109},[71,268,269],{"class":99},"remove",[71,271,169],{"class":109},[71,273,274],{"class":144},"                \u002F\u002F 删除文件\u002F目录\n",[71,276,278,280,282,285,288,291,294],{"class":73,"line":277},15,[71,279,129],{"class":99},[71,281,110],{"class":109},[71,283,284],{"class":99},"rename",[71,286,287],{"class":109},"(old, ",[71,289,290],{"class":77},"new",[71,292,293],{"class":109},");",[71,295,296],{"class":144},"         \u002F\u002F 重命名\n",[71,298,300],{"class":73,"line":299},16,[71,301,123],{"emptyLinePlaceholder":122},[71,303,305],{"class":73,"line":304},17,[71,306,307],{"class":144},"\u002F\u002F 遍历\n",[71,309,311,314,317,320,323,326,328,330,333,336],{"class":73,"line":310},18,[71,312,313],{"class":77},"for",[71,315,316],{"class":109}," (",[71,318,319],{"class":77},"const",[71,321,322],{"class":77}," auto&",[71,324,325],{"class":109}," entry : ",[71,327,129],{"class":99},[71,329,110],{"class":109},[71,331,332],{"class":99},"directory_iterator",[71,334,335],{"class":109},"(p)) { ... }",[71,337,338],{"class":144},"      \u002F\u002F 非递归\n",[71,340,342,344,346,348,350,352,354,356,359,362],{"class":73,"line":341},19,[71,343,313],{"class":77},[71,345,316],{"class":109},[71,347,319],{"class":77},[71,349,322],{"class":77},[71,351,325],{"class":109},[71,353,129],{"class":99},[71,355,110],{"class":109},[71,357,358],{"class":99},"recursive_directory_iterator",[71,360,361],{"class":109},"(p)) {}",[71,363,364],{"class":144}," \u002F\u002F 递归\n",[10,366,368],{"id":367},"common-operations","Common operations",[370,371,372,386],"table",{},[373,374,375],"thead",{},[376,377,378,383],"tr",{},[379,380,382],"th",{"align":381},"left","Operation",[379,384,385],{"align":381},"Explanation",[387,388,389,400,410,420,430,440,450,460,470,480,490,500,510],"tbody",{},[376,390,391,397],{},[392,393,394],"td",{"align":381},[19,395,396],{},"fs::exists(p)",[392,398,399],{"align":381},"路径是否存在",[376,401,402,407],{},[392,403,404],{"align":381},[19,405,406],{},"fs::is_directory(p)",[392,408,409],{"align":381},"Is this the table of contents?",[376,411,412,417],{},[392,413,414],{"align":381},[19,415,416],{},"fs::is_regular_file(p)",[392,418,419],{"align":381},"Is this a regular file?",[376,421,422,427],{},[392,423,424],{"align":381},[19,425,426],{},"fs::create_directory(p)",[392,428,429],{"align":381},"Create Directory",[376,431,432,437],{},[392,433,434],{"align":381},[19,435,436],{},"fs::create_directories(p)",[392,438,439],{"align":381},"Recursively create directories (similar to mkdir -p)",[376,441,442,447],{},[392,443,444],{"align":381},[19,445,446],{},"fs::copy(src, dst)",[392,448,449],{"align":381},"Copy files",[376,451,452,457],{},[392,453,454],{"align":381},[19,455,456],{},"fs::remove(p)",[392,458,459],{"align":381},"Delete file or empty directory",[376,461,462,467],{},[392,463,464],{"align":381},[19,465,466],{},"fs::remove_all(p)",[392,468,469],{"align":381},"Recursive delete (similar to rm -rf)",[376,471,472,477],{},[392,473,474],{"align":381},[19,475,476],{},"fs::rename(old, new)",[392,478,479],{"align":381},"Rename\u002FMove",[376,481,482,487],{},[392,483,484],{"align":381},[19,485,486],{},"p.filename()",[392,488,489],{"align":381},"Get file name",[376,491,492,497],{},[392,493,494],{"align":381},[19,495,496],{},"p.extension()",[392,498,499],{"align":381},"Get the extension name.",[376,501,502,507],{},[392,503,504],{"align":381},[19,505,506],{},"p.parent_path()",[392,508,509],{"align":381},"Get parent directory",[376,511,512,517],{},[392,513,514],{"align":381},[19,515,516],{},"p \u002F \"subdir\"",[392,518,519,520,523],{"align":381},"Path concatenation (using the ",[19,521,522],{},"\u002F"," operator)",[10,525,527],{"id":526},"example-code","Example code",[529,530,532],"h3",{"id":531},"example-1-check-filedirectory-existence-and-size-information","Example 1: Check file\u002Fdirectory existence and size information",[62,534,536],{"className":64,"code":535,"language":66,"meta":67,"style":67},"#include \u003Ciostream>\n#include \u003Cfilesystem>\n\nnamespace fs = std::filesystem;\n\nint main()\n{\n    \u002F\u002F 用当前目录做演示\n    fs::path current = fs::current_path();\n    std::cout \u003C\u003C \"Current path: \" \u003C\u003C current \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"Exists: \" \u003C\u003C std::boolalpha \u003C\u003C fs::exists(current) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"Is directory: \" \u003C\u003C fs::is_directory(current) \u003C\u003C \"\\n\";\n\n    \u002F\u002F 获取路径的各部分\n    std::cout \u003C\u003C \"Filename: \" \u003C\u003C current.filename() \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"Parent path: \" \u003C\u003C current.parent_path() \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"Root path: \" \u003C\u003C current.root_path() \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[19,537,538,545,551,555,571,575,586,591,596,616,650,689,720,724,729,761,791,821,825,835],{"__ignoreMap":67},[71,539,540,542],{"class":73,"line":74},[71,541,78],{"class":77},[71,543,544],{"class":81}," \u003Ciostream>\n",[71,546,547,549],{"class":73,"line":119},[71,548,78],{"class":77},[71,550,82],{"class":81},[71,552,553],{"class":73,"line":126},[71,554,123],{"emptyLinePlaceholder":122},[71,556,557,559,561,563,565,567,569],{"class":73,"line":148},[71,558,96],{"class":77},[71,560,100],{"class":99},[71,562,103],{"class":77},[71,564,106],{"class":99},[71,566,110],{"class":109},[71,568,113],{"class":99},[71,570,116],{"class":109},[71,572,573],{"class":73,"line":153},[71,574,123],{"emptyLinePlaceholder":122},[71,576,577,580,583],{"class":73,"line":159},[71,578,579],{"class":77},"int",[71,581,582],{"class":99}," main",[71,584,585],{"class":109},"()\n",[71,587,588],{"class":73,"line":175},[71,589,590],{"class":109},"{\n",[71,592,593],{"class":73,"line":190},[71,594,595],{"class":144},"    \u002F\u002F 用当前目录做演示\n",[71,597,598,601,604,606,608,610,613],{"class":73,"line":205},[71,599,600],{"class":99},"    fs",[71,602,603],{"class":109},"::path current ",[71,605,135],{"class":77},[71,607,100],{"class":99},[71,609,110],{"class":109},[71,611,612],{"class":99},"current_path",[71,614,615],{"class":109},"();\n",[71,617,618,621,624,627,630,633,636,638,641,645,648],{"class":73,"line":220},[71,619,620],{"class":99},"    std",[71,622,623],{"class":109},"::cout ",[71,625,626],{"class":77},"\u003C\u003C",[71,628,629],{"class":81}," \"Current path: \"",[71,631,632],{"class":77}," \u003C\u003C",[71,634,635],{"class":109}," current ",[71,637,626],{"class":77},[71,639,640],{"class":81}," \"",[71,642,644],{"class":643},"sj4cs","\\n",[71,646,647],{"class":81},"\"",[71,649,116],{"class":109},[71,651,652,654,656,658,661,663,665,668,670,672,674,676,679,681,683,685,687],{"class":73,"line":225},[71,653,620],{"class":99},[71,655,623],{"class":109},[71,657,626],{"class":77},[71,659,660],{"class":81}," \"Exists: \"",[71,662,632],{"class":77},[71,664,106],{"class":99},[71,666,667],{"class":109},"::boolalpha ",[71,669,626],{"class":77},[71,671,100],{"class":99},[71,673,110],{"class":109},[71,675,166],{"class":99},[71,677,678],{"class":109},"(current) ",[71,680,626],{"class":77},[71,682,640],{"class":81},[71,684,644],{"class":643},[71,686,647],{"class":81},[71,688,116],{"class":109},[71,690,691,693,695,697,700,702,704,706,708,710,712,714,716,718],{"class":73,"line":231},[71,692,620],{"class":99},[71,694,623],{"class":109},[71,696,626],{"class":77},[71,698,699],{"class":81}," \"Is directory: \"",[71,701,632],{"class":77},[71,703,100],{"class":99},[71,705,110],{"class":109},[71,707,197],{"class":99},[71,709,678],{"class":109},[71,711,626],{"class":77},[71,713,640],{"class":81},[71,715,644],{"class":643},[71,717,647],{"class":81},[71,719,116],{"class":109},[71,721,722],{"class":73,"line":246},[71,723,123],{"emptyLinePlaceholder":122},[71,725,726],{"class":73,"line":262},[71,727,728],{"class":144},"    \u002F\u002F 获取路径的各部分\n",[71,730,731,733,735,737,740,742,745,748,751,753,755,757,759],{"class":73,"line":277},[71,732,620],{"class":99},[71,734,623],{"class":109},[71,736,626],{"class":77},[71,738,739],{"class":81}," \"Filename: \"",[71,741,632],{"class":77},[71,743,744],{"class":109}," current.",[71,746,747],{"class":99},"filename",[71,749,750],{"class":109},"() ",[71,752,626],{"class":77},[71,754,640],{"class":81},[71,756,644],{"class":643},[71,758,647],{"class":81},[71,760,116],{"class":109},[71,762,763,765,767,769,772,774,776,779,781,783,785,787,789],{"class":73,"line":299},[71,764,620],{"class":99},[71,766,623],{"class":109},[71,768,626],{"class":77},[71,770,771],{"class":81}," \"Parent path: \"",[71,773,632],{"class":77},[71,775,744],{"class":109},[71,777,778],{"class":99},"parent_path",[71,780,750],{"class":109},[71,782,626],{"class":77},[71,784,640],{"class":81},[71,786,644],{"class":643},[71,788,647],{"class":81},[71,790,116],{"class":109},[71,792,793,795,797,799,802,804,806,809,811,813,815,817,819],{"class":73,"line":304},[71,794,620],{"class":99},[71,796,623],{"class":109},[71,798,626],{"class":77},[71,800,801],{"class":81}," \"Root path: \"",[71,803,632],{"class":77},[71,805,744],{"class":109},[71,807,808],{"class":99},"root_path",[71,810,750],{"class":109},[71,812,626],{"class":77},[71,814,640],{"class":81},[71,816,644],{"class":643},[71,818,647],{"class":81},[71,820,116],{"class":109},[71,822,823],{"class":73,"line":310},[71,824,123],{"emptyLinePlaceholder":122},[71,826,827,830,833],{"class":73,"line":341},[71,828,829],{"class":77},"    return",[71,831,832],{"class":643}," 0",[71,834,116],{"class":109},[71,836,838],{"class":73,"line":837},20,[71,839,840],{"class":109},"}\n",[15,842,843,846],{},[33,844,845],{},"Running results"," (paths may vary by machine):",[62,848,853],{"className":849,"code":851,"language":852},[850],"language-text","Current path: \"\u002Fhome\u002Fuser\u002FMySource\u002Fmy-blog\"\nExists: true\nIs directory: true\nFilename: \"my-blog\"\nParent path: \"\u002Fhome\u002Fuser\u002FMySource\"\nRoot path: \"\u002F\"\n","text",[19,854,851],{"__ignoreMap":67},[529,856,858],{"id":857},"example-2-building-on-example-1-iterate-through-all-files-in-the-directory","Example 2: Building on Example 1, iterate through all files in the directory",[62,860,862],{"className":64,"code":861,"language":66,"meta":67,"style":67},"#include \u003Ciostream>\n#include \u003Cfilesystem>\n\nnamespace fs = std::filesystem;\n\nint main()\n{\n    fs::path dir = fs::current_path();\n\n    std::cout \u003C\u003C \"Contents of \" \u003C\u003C dir \u003C\u003C \":\\n\";\n    std::cout \u003C\u003C \"--------------------------------\\n\";\n\n    \u002F\u002F 遍历当前目录（不递归子目录）\n    for (const auto& entry : fs::directory_iterator(dir))\n    {\n        std::string type = entry.is_directory() ? \"[DIR] \" : \"[FILE]\";\n        std::cout \u003C\u003C type \u003C\u003C \" \" \u003C\u003C entry.path().filename().string() \u003C\u003C \"\\n\";\n    }\n\n    return 0;\n}\n",[19,863,864,870,876,880,896,900,908,912,929,933,960,977,981,986,1008,1013,1044,1089,1094,1098,1106],{"__ignoreMap":67},[71,865,866,868],{"class":73,"line":74},[71,867,78],{"class":77},[71,869,544],{"class":81},[71,871,872,874],{"class":73,"line":119},[71,873,78],{"class":77},[71,875,82],{"class":81},[71,877,878],{"class":73,"line":126},[71,879,123],{"emptyLinePlaceholder":122},[71,881,882,884,886,888,890,892,894],{"class":73,"line":148},[71,883,96],{"class":77},[71,885,100],{"class":99},[71,887,103],{"class":77},[71,889,106],{"class":99},[71,891,110],{"class":109},[71,893,113],{"class":99},[71,895,116],{"class":109},[71,897,898],{"class":73,"line":153},[71,899,123],{"emptyLinePlaceholder":122},[71,901,902,904,906],{"class":73,"line":159},[71,903,579],{"class":77},[71,905,582],{"class":99},[71,907,585],{"class":109},[71,909,910],{"class":73,"line":175},[71,911,590],{"class":109},[71,913,914,916,919,921,923,925,927],{"class":73,"line":190},[71,915,600],{"class":99},[71,917,918],{"class":109},"::path dir ",[71,920,135],{"class":77},[71,922,100],{"class":99},[71,924,110],{"class":109},[71,926,612],{"class":99},[71,928,615],{"class":109},[71,930,931],{"class":73,"line":205},[71,932,123],{"emptyLinePlaceholder":122},[71,934,935,937,939,941,944,946,949,951,954,956,958],{"class":73,"line":220},[71,936,620],{"class":99},[71,938,623],{"class":109},[71,940,626],{"class":77},[71,942,943],{"class":81}," \"Contents of \"",[71,945,632],{"class":77},[71,947,948],{"class":109}," dir ",[71,950,626],{"class":77},[71,952,953],{"class":81}," \":",[71,955,644],{"class":643},[71,957,647],{"class":81},[71,959,116],{"class":109},[71,961,962,964,966,968,971,973,975],{"class":73,"line":225},[71,963,620],{"class":99},[71,965,623],{"class":109},[71,967,626],{"class":77},[71,969,970],{"class":81}," \"--------------------------------",[71,972,644],{"class":643},[71,974,647],{"class":81},[71,976,116],{"class":109},[71,978,979],{"class":73,"line":231},[71,980,123],{"emptyLinePlaceholder":122},[71,982,983],{"class":73,"line":246},[71,984,985],{"class":144},"    \u002F\u002F 遍历当前目录（不递归子目录）\n",[71,987,988,991,993,995,997,999,1001,1003,1005],{"class":73,"line":262},[71,989,990],{"class":77},"    for",[71,992,316],{"class":109},[71,994,319],{"class":77},[71,996,322],{"class":77},[71,998,325],{"class":109},[71,1000,129],{"class":99},[71,1002,110],{"class":109},[71,1004,332],{"class":99},[71,1006,1007],{"class":109},"(dir))\n",[71,1009,1010],{"class":73,"line":277},[71,1011,1012],{"class":109},"    {\n",[71,1014,1015,1018,1021,1023,1026,1028,1030,1033,1036,1039,1042],{"class":73,"line":299},[71,1016,1017],{"class":99},"        std",[71,1019,1020],{"class":109},"::string type ",[71,1022,135],{"class":77},[71,1024,1025],{"class":109}," entry.",[71,1027,197],{"class":99},[71,1029,750],{"class":109},[71,1031,1032],{"class":77},"?",[71,1034,1035],{"class":81}," \"[DIR] \"",[71,1037,1038],{"class":77}," :",[71,1040,1041],{"class":81}," \"[FILE]\"",[71,1043,116],{"class":109},[71,1045,1046,1048,1050,1052,1055,1057,1060,1062,1064,1067,1070,1072,1074,1077,1079,1081,1083,1085,1087],{"class":73,"line":304},[71,1047,1017],{"class":99},[71,1049,623],{"class":109},[71,1051,626],{"class":77},[71,1053,1054],{"class":109}," type ",[71,1056,626],{"class":77},[71,1058,1059],{"class":81}," \" \"",[71,1061,632],{"class":77},[71,1063,1025],{"class":109},[71,1065,1066],{"class":99},"path",[71,1068,1069],{"class":109},"().",[71,1071,747],{"class":99},[71,1073,1069],{"class":109},[71,1075,1076],{"class":99},"string",[71,1078,750],{"class":109},[71,1080,626],{"class":77},[71,1082,640],{"class":81},[71,1084,644],{"class":643},[71,1086,647],{"class":81},[71,1088,116],{"class":109},[71,1090,1091],{"class":73,"line":310},[71,1092,1093],{"class":109},"    }\n",[71,1095,1096],{"class":73,"line":341},[71,1097,123],{"emptyLinePlaceholder":122},[71,1099,1100,1102,1104],{"class":73,"line":837},[71,1101,829],{"class":77},[71,1103,832],{"class":643},[71,1105,116],{"class":109},[71,1107,1109],{"class":73,"line":1108},21,[71,1110,840],{"class":109},[15,1112,1113,1116],{},[33,1114,1115],{},"Running Results"," (vary depending on the directory contents):",[62,1118,1121],{"className":1119,"code":1120,"language":852},[850],"Contents of \"\u002Fhome\u002Fuser\u002FMySource\u002Fmy-blog\":\n--------------------------------\n[DIR]  .git\n[DIR]  app\n[DIR]  content\n[FILE] nuxt.config.ts\n[FILE] package.json\n[FILE] README.md\n...\n",[19,1122,1120],{"__ignoreMap":67},[529,1124,1126],{"id":1125},"example-3-filtering-files-with-specific-extensions-based-on-example-2","Example 3: Filtering files with specific extensions based on Example 2",[62,1128,1130],{"className":64,"code":1129,"language":66,"meta":67,"style":67},"#include \u003Ciostream>\n#include \u003Cfilesystem>\n#include \u003Cvector>\n\nnamespace fs = std::filesystem;\n\n\u002F\u002F 查找指定目录下所有 .md 文件\nstd::vector\u003Cfs::path> find_md_files(const fs::path& dir)\n{\n    std::vector\u003Cfs::path> result;\n    for (const auto& entry : fs::recursive_directory_iterator(dir))\n    {\n        if (entry.is_regular_file() && entry.path().extension() == \".md\")\n        {\n            result.push_back(entry.path());\n        }\n    }\n    return result;\n}\n\nint main()\n{\n    fs::path dir = fs::current_path() \u002F \"content\";\n\n    if (!fs::exists(dir))\n    {\n        std::cout \u003C\u003C \"Directory not found: \" \u003C\u003C dir \u003C\u003C \"\\n\";\n        return 1;\n    }\n\n    auto md_files = find_md_files(dir);\n\n    std::cout \u003C\u003C \"Found \" \u003C\u003C md_files.size() \u003C\u003C \" .md files:\\n\";\n    for (const auto& f : md_files)\n    {\n        std::cout \u003C\u003C \"  \" \u003C\u003C f.filename().string() \u003C\u003C \"\\n\";\n    }\n\n    return 0;\n}\n",[19,1131,1132,1138,1144,1151,1155,1171,1175,1180,1226,1230,1250,1270,1274,1308,1313,1329,1334,1338,1344,1348,1352,1360,1365,1389,1394,1413,1418,1444,1455,1460,1465,1482,1487,1520,1534,1539,1574,1579,1584,1593],{"__ignoreMap":67},[71,1133,1134,1136],{"class":73,"line":74},[71,1135,78],{"class":77},[71,1137,544],{"class":81},[71,1139,1140,1142],{"class":73,"line":119},[71,1141,78],{"class":77},[71,1143,82],{"class":81},[71,1145,1146,1148],{"class":73,"line":126},[71,1147,78],{"class":77},[71,1149,1150],{"class":81}," \u003Cvector>\n",[71,1152,1153],{"class":73,"line":148},[71,1154,123],{"emptyLinePlaceholder":122},[71,1156,1157,1159,1161,1163,1165,1167,1169],{"class":73,"line":153},[71,1158,96],{"class":77},[71,1160,100],{"class":99},[71,1162,103],{"class":77},[71,1164,106],{"class":99},[71,1166,110],{"class":109},[71,1168,113],{"class":99},[71,1170,116],{"class":109},[71,1172,1173],{"class":73,"line":159},[71,1174,123],{"emptyLinePlaceholder":122},[71,1176,1177],{"class":73,"line":175},[71,1178,1179],{"class":144},"\u002F\u002F 查找指定目录下所有 .md 文件\n",[71,1181,1182,1185,1187,1190,1193,1195,1197,1199,1202,1205,1208,1210,1212,1214,1216,1219,1223],{"class":73,"line":190},[71,1183,1184],{"class":99},"std",[71,1186,110],{"class":109},[71,1188,1189],{"class":99},"vector",[71,1191,1192],{"class":109},"\u003C",[71,1194,129],{"class":99},[71,1196,110],{"class":109},[71,1198,1066],{"class":99},[71,1200,1201],{"class":109},"> ",[71,1203,1204],{"class":99},"find_md_files",[71,1206,1207],{"class":109},"(",[71,1209,319],{"class":77},[71,1211,100],{"class":99},[71,1213,110],{"class":109},[71,1215,1066],{"class":99},[71,1217,1218],{"class":77},"&",[71,1220,1222],{"class":1221},"s4XuR"," dir",[71,1224,1225],{"class":109},")\n",[71,1227,1228],{"class":73,"line":205},[71,1229,590],{"class":109},[71,1231,1232,1234,1237,1239,1241,1244,1247],{"class":73,"line":220},[71,1233,620],{"class":99},[71,1235,1236],{"class":109},"::vector",[71,1238,1192],{"class":77},[71,1240,129],{"class":99},[71,1242,1243],{"class":109},"::path",[71,1245,1246],{"class":77},">",[71,1248,1249],{"class":109}," result;\n",[71,1251,1252,1254,1256,1258,1260,1262,1264,1266,1268],{"class":73,"line":225},[71,1253,990],{"class":77},[71,1255,316],{"class":109},[71,1257,319],{"class":77},[71,1259,322],{"class":77},[71,1261,325],{"class":109},[71,1263,129],{"class":99},[71,1265,110],{"class":109},[71,1267,358],{"class":99},[71,1269,1007],{"class":109},[71,1271,1272],{"class":73,"line":231},[71,1273,1012],{"class":109},[71,1275,1276,1279,1282,1284,1286,1289,1291,1293,1295,1298,1300,1303,1306],{"class":73,"line":246},[71,1277,1278],{"class":77},"        if",[71,1280,1281],{"class":109}," (entry.",[71,1283,182],{"class":99},[71,1285,750],{"class":109},[71,1287,1288],{"class":77},"&&",[71,1290,1025],{"class":109},[71,1292,1066],{"class":99},[71,1294,1069],{"class":109},[71,1296,1297],{"class":99},"extension",[71,1299,750],{"class":109},[71,1301,1302],{"class":77},"==",[71,1304,1305],{"class":81}," \".md\"",[71,1307,1225],{"class":109},[71,1309,1310],{"class":73,"line":262},[71,1311,1312],{"class":109},"        {\n",[71,1314,1315,1318,1321,1324,1326],{"class":73,"line":277},[71,1316,1317],{"class":109},"            result.",[71,1319,1320],{"class":99},"push_back",[71,1322,1323],{"class":109},"(entry.",[71,1325,1066],{"class":99},[71,1327,1328],{"class":109},"());\n",[71,1330,1331],{"class":73,"line":299},[71,1332,1333],{"class":109},"        }\n",[71,1335,1336],{"class":73,"line":304},[71,1337,1093],{"class":109},[71,1339,1340,1342],{"class":73,"line":310},[71,1341,829],{"class":77},[71,1343,1249],{"class":109},[71,1345,1346],{"class":73,"line":341},[71,1347,840],{"class":109},[71,1349,1350],{"class":73,"line":837},[71,1351,123],{"emptyLinePlaceholder":122},[71,1353,1354,1356,1358],{"class":73,"line":1108},[71,1355,579],{"class":77},[71,1357,582],{"class":99},[71,1359,585],{"class":109},[71,1361,1363],{"class":73,"line":1362},22,[71,1364,590],{"class":109},[71,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1387],{"class":73,"line":1367},23,[71,1369,600],{"class":99},[71,1371,918],{"class":109},[71,1373,135],{"class":77},[71,1375,100],{"class":99},[71,1377,110],{"class":109},[71,1379,612],{"class":99},[71,1381,750],{"class":109},[71,1383,522],{"class":77},[71,1385,1386],{"class":81}," \"content\"",[71,1388,116],{"class":109},[71,1390,1392],{"class":73,"line":1391},24,[71,1393,123],{"emptyLinePlaceholder":122},[71,1395,1397,1400,1402,1405,1407,1409,1411],{"class":73,"line":1396},25,[71,1398,1399],{"class":77},"    if",[71,1401,316],{"class":109},[71,1403,1404],{"class":77},"!",[71,1406,129],{"class":99},[71,1408,110],{"class":109},[71,1410,166],{"class":99},[71,1412,1007],{"class":109},[71,1414,1416],{"class":73,"line":1415},26,[71,1417,1012],{"class":109},[71,1419,1421,1423,1425,1427,1430,1432,1434,1436,1438,1440,1442],{"class":73,"line":1420},27,[71,1422,1017],{"class":99},[71,1424,623],{"class":109},[71,1426,626],{"class":77},[71,1428,1429],{"class":81}," \"Directory not found: \"",[71,1431,632],{"class":77},[71,1433,948],{"class":109},[71,1435,626],{"class":77},[71,1437,640],{"class":81},[71,1439,644],{"class":643},[71,1441,647],{"class":81},[71,1443,116],{"class":109},[71,1445,1447,1450,1453],{"class":73,"line":1446},28,[71,1448,1449],{"class":77},"        return",[71,1451,1452],{"class":643}," 1",[71,1454,116],{"class":109},[71,1456,1458],{"class":73,"line":1457},29,[71,1459,1093],{"class":109},[71,1461,1463],{"class":73,"line":1462},30,[71,1464,123],{"emptyLinePlaceholder":122},[71,1466,1468,1471,1474,1476,1479],{"class":73,"line":1467},31,[71,1469,1470],{"class":77},"    auto",[71,1472,1473],{"class":109}," md_files ",[71,1475,135],{"class":77},[71,1477,1478],{"class":99}," find_md_files",[71,1480,1481],{"class":109},"(dir);\n",[71,1483,1485],{"class":73,"line":1484},32,[71,1486,123],{"emptyLinePlaceholder":122},[71,1488,1490,1492,1494,1496,1499,1501,1504,1507,1509,1511,1514,1516,1518],{"class":73,"line":1489},33,[71,1491,620],{"class":99},[71,1493,623],{"class":109},[71,1495,626],{"class":77},[71,1497,1498],{"class":81}," \"Found \"",[71,1500,632],{"class":77},[71,1502,1503],{"class":109}," md_files.",[71,1505,1506],{"class":99},"size",[71,1508,750],{"class":109},[71,1510,626],{"class":77},[71,1512,1513],{"class":81}," \" .md files:",[71,1515,644],{"class":643},[71,1517,647],{"class":81},[71,1519,116],{"class":109},[71,1521,1523,1525,1527,1529,1531],{"class":73,"line":1522},34,[71,1524,990],{"class":77},[71,1526,316],{"class":109},[71,1528,319],{"class":77},[71,1530,322],{"class":77},[71,1532,1533],{"class":109}," f : md_files)\n",[71,1535,1537],{"class":73,"line":1536},35,[71,1538,1012],{"class":109},[71,1540,1542,1544,1546,1548,1551,1553,1556,1558,1560,1562,1564,1566,1568,1570,1572],{"class":73,"line":1541},36,[71,1543,1017],{"class":99},[71,1545,623],{"class":109},[71,1547,626],{"class":77},[71,1549,1550],{"class":81}," \"  \"",[71,1552,632],{"class":77},[71,1554,1555],{"class":109}," f.",[71,1557,747],{"class":99},[71,1559,1069],{"class":109},[71,1561,1076],{"class":99},[71,1563,750],{"class":109},[71,1565,626],{"class":77},[71,1567,640],{"class":81},[71,1569,644],{"class":643},[71,1571,647],{"class":81},[71,1573,116],{"class":109},[71,1575,1577],{"class":73,"line":1576},37,[71,1578,1093],{"class":109},[71,1580,1582],{"class":73,"line":1581},38,[71,1583,123],{"emptyLinePlaceholder":122},[71,1585,1587,1589,1591],{"class":73,"line":1586},39,[71,1588,829],{"class":77},[71,1590,832],{"class":643},[71,1592,116],{"class":109},[71,1594,1596],{"class":73,"line":1595},40,[71,1597,840],{"class":109},[15,1599,1600,1603],{},[33,1601,1602],{},"Run results"," (depending on file content):",[62,1605,1608],{"className":1606,"code":1607,"language":852},[850],"Found 15 .md files:\n  index.md\n  ch2-前言.md\n  2000-现代C++.md\n  ...\n",[19,1609,1607],{"__ignoreMap":67},[529,1611,1613],{"id":1612},"example-4-building-on-example-3-create-directories-files-and-copy-them","Example 4: Building on Example 3, create directories, files, and copy them.",[62,1615,1617],{"className":64,"code":1616,"language":66,"meta":67,"style":67},"#include \u003Ciostream>\n#include \u003Cfilesystem>\n#include \u003Cfstream>\n\nnamespace fs = std::filesystem;\n\nint main()\n{\n    fs::path test_dir = fs::temp_directory_path() \u002F \"cpp_test_demo\";\n\n    \u002F\u002F 创建目录（如果已存在也不报错）\n    if (fs::create_directory(test_dir))\n    {\n        std::cout \u003C\u003C \"Created: \" \u003C\u003C test_dir \u003C\u003C \"\\n\";\n    }\n    else\n    {\n        std::cout \u003C\u003C \"Already exists: \" \u003C\u003C test_dir \u003C\u003C \"\\n\";\n    }\n\n    \u002F\u002F 创建一个文件\n    fs::path file_path = test_dir \u002F \"hello.txt\";\n    {\n        std::ofstream out(file_path);\n        out \u003C\u003C \"Hello, filesystem!\\n\";\n    }\n    std::cout \u003C\u003C \"Created file: \" \u003C\u003C file_path \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"File size: \" \u003C\u003C fs::file_size(file_path) \u003C\u003C \" bytes\\n\";\n\n    \u002F\u002F 拷贝文件\n    fs::path copy_path = test_dir \u002F \"hello_copy.txt\";\n    fs::copy(file_path, copy_path);\n    std::cout \u003C\u003C \"Copied to: \" \u003C\u003C copy_path \u003C\u003C \"\\n\";\n\n    \u002F\u002F 检查两个文件都存在\n    std::cout \u003C\u003C \"hello.txt exists: \" \u003C\u003C fs::exists(file_path) \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"hello_copy.txt exists: \" \u003C\u003C fs::exists(copy_path) \u003C\u003C \"\\n\";\n\n    \u002F\u002F 清理：删除测试目录\n    fs::remove_all(test_dir);\n    std::cout \u003C\u003C \"Cleaned up: \" \u003C\u003C test_dir \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[19,1618,1619,1625,1631,1638,1642,1658,1662,1670,1674,1699,1703,1708,1723,1727,1753,1757,1762,1766,1791,1795,1799,1804,1822,1826,1839,1855,1859,1885,1918,1922,1927,1945,1956,1982,1986,1991,2022,2054,2058,2063,2075,2101,2106,2115],{"__ignoreMap":67},[71,1620,1621,1623],{"class":73,"line":74},[71,1622,78],{"class":77},[71,1624,544],{"class":81},[71,1626,1627,1629],{"class":73,"line":119},[71,1628,78],{"class":77},[71,1630,82],{"class":81},[71,1632,1633,1635],{"class":73,"line":126},[71,1634,78],{"class":77},[71,1636,1637],{"class":81}," \u003Cfstream>\n",[71,1639,1640],{"class":73,"line":148},[71,1641,123],{"emptyLinePlaceholder":122},[71,1643,1644,1646,1648,1650,1652,1654,1656],{"class":73,"line":153},[71,1645,96],{"class":77},[71,1647,100],{"class":99},[71,1649,103],{"class":77},[71,1651,106],{"class":99},[71,1653,110],{"class":109},[71,1655,113],{"class":99},[71,1657,116],{"class":109},[71,1659,1660],{"class":73,"line":159},[71,1661,123],{"emptyLinePlaceholder":122},[71,1663,1664,1666,1668],{"class":73,"line":175},[71,1665,579],{"class":77},[71,1667,582],{"class":99},[71,1669,585],{"class":109},[71,1671,1672],{"class":73,"line":190},[71,1673,590],{"class":109},[71,1675,1676,1678,1681,1683,1685,1687,1690,1692,1694,1697],{"class":73,"line":205},[71,1677,600],{"class":99},[71,1679,1680],{"class":109},"::path test_dir ",[71,1682,135],{"class":77},[71,1684,100],{"class":99},[71,1686,110],{"class":109},[71,1688,1689],{"class":99},"temp_directory_path",[71,1691,750],{"class":109},[71,1693,522],{"class":77},[71,1695,1696],{"class":81}," \"cpp_test_demo\"",[71,1698,116],{"class":109},[71,1700,1701],{"class":73,"line":220},[71,1702,123],{"emptyLinePlaceholder":122},[71,1704,1705],{"class":73,"line":225},[71,1706,1707],{"class":144},"    \u002F\u002F 创建目录（如果已存在也不报错）\n",[71,1709,1710,1712,1714,1716,1718,1720],{"class":73,"line":231},[71,1711,1399],{"class":77},[71,1713,316],{"class":109},[71,1715,129],{"class":99},[71,1717,110],{"class":109},[71,1719,238],{"class":99},[71,1721,1722],{"class":109},"(test_dir))\n",[71,1724,1725],{"class":73,"line":246},[71,1726,1012],{"class":109},[71,1728,1729,1731,1733,1735,1738,1740,1743,1745,1747,1749,1751],{"class":73,"line":262},[71,1730,1017],{"class":99},[71,1732,623],{"class":109},[71,1734,626],{"class":77},[71,1736,1737],{"class":81}," \"Created: \"",[71,1739,632],{"class":77},[71,1741,1742],{"class":109}," test_dir ",[71,1744,626],{"class":77},[71,1746,640],{"class":81},[71,1748,644],{"class":643},[71,1750,647],{"class":81},[71,1752,116],{"class":109},[71,1754,1755],{"class":73,"line":277},[71,1756,1093],{"class":109},[71,1758,1759],{"class":73,"line":299},[71,1760,1761],{"class":77},"    else\n",[71,1763,1764],{"class":73,"line":304},[71,1765,1012],{"class":109},[71,1767,1768,1770,1772,1774,1777,1779,1781,1783,1785,1787,1789],{"class":73,"line":310},[71,1769,1017],{"class":99},[71,1771,623],{"class":109},[71,1773,626],{"class":77},[71,1775,1776],{"class":81}," \"Already exists: \"",[71,1778,632],{"class":77},[71,1780,1742],{"class":109},[71,1782,626],{"class":77},[71,1784,640],{"class":81},[71,1786,644],{"class":643},[71,1788,647],{"class":81},[71,1790,116],{"class":109},[71,1792,1793],{"class":73,"line":341},[71,1794,1093],{"class":109},[71,1796,1797],{"class":73,"line":837},[71,1798,123],{"emptyLinePlaceholder":122},[71,1800,1801],{"class":73,"line":1108},[71,1802,1803],{"class":144},"    \u002F\u002F 创建一个文件\n",[71,1805,1806,1808,1811,1813,1815,1817,1820],{"class":73,"line":1362},[71,1807,600],{"class":99},[71,1809,1810],{"class":109},"::path file_path ",[71,1812,135],{"class":77},[71,1814,1742],{"class":109},[71,1816,522],{"class":77},[71,1818,1819],{"class":81}," \"hello.txt\"",[71,1821,116],{"class":109},[71,1823,1824],{"class":73,"line":1367},[71,1825,1012],{"class":109},[71,1827,1828,1830,1833,1836],{"class":73,"line":1391},[71,1829,1017],{"class":99},[71,1831,1832],{"class":109},"::ofstream ",[71,1834,1835],{"class":99},"out",[71,1837,1838],{"class":109},"(file_path);\n",[71,1840,1841,1844,1846,1849,1851,1853],{"class":73,"line":1396},[71,1842,1843],{"class":109},"        out ",[71,1845,626],{"class":77},[71,1847,1848],{"class":81}," \"Hello, filesystem!",[71,1850,644],{"class":643},[71,1852,647],{"class":81},[71,1854,116],{"class":109},[71,1856,1857],{"class":73,"line":1415},[71,1858,1093],{"class":109},[71,1860,1861,1863,1865,1867,1870,1872,1875,1877,1879,1881,1883],{"class":73,"line":1420},[71,1862,620],{"class":99},[71,1864,623],{"class":109},[71,1866,626],{"class":77},[71,1868,1869],{"class":81}," \"Created file: \"",[71,1871,632],{"class":77},[71,1873,1874],{"class":109}," file_path ",[71,1876,626],{"class":77},[71,1878,640],{"class":81},[71,1880,644],{"class":643},[71,1882,647],{"class":81},[71,1884,116],{"class":109},[71,1886,1887,1889,1891,1893,1896,1898,1900,1902,1904,1907,1909,1912,1914,1916],{"class":73,"line":1446},[71,1888,620],{"class":99},[71,1890,623],{"class":109},[71,1892,626],{"class":77},[71,1894,1895],{"class":81}," \"File size: \"",[71,1897,632],{"class":77},[71,1899,100],{"class":99},[71,1901,110],{"class":109},[71,1903,212],{"class":99},[71,1905,1906],{"class":109},"(file_path) ",[71,1908,626],{"class":77},[71,1910,1911],{"class":81}," \" bytes",[71,1913,644],{"class":643},[71,1915,647],{"class":81},[71,1917,116],{"class":109},[71,1919,1920],{"class":73,"line":1457},[71,1921,123],{"emptyLinePlaceholder":122},[71,1923,1924],{"class":73,"line":1462},[71,1925,1926],{"class":144},"    \u002F\u002F 拷贝文件\n",[71,1928,1929,1931,1934,1936,1938,1940,1943],{"class":73,"line":1467},[71,1930,600],{"class":99},[71,1932,1933],{"class":109},"::path copy_path ",[71,1935,135],{"class":77},[71,1937,1742],{"class":109},[71,1939,522],{"class":77},[71,1941,1942],{"class":81}," \"hello_copy.txt\"",[71,1944,116],{"class":109},[71,1946,1947,1949,1951,1953],{"class":73,"line":1484},[71,1948,600],{"class":99},[71,1950,110],{"class":109},[71,1952,253],{"class":99},[71,1954,1955],{"class":109},"(file_path, copy_path);\n",[71,1957,1958,1960,1962,1964,1967,1969,1972,1974,1976,1978,1980],{"class":73,"line":1489},[71,1959,620],{"class":99},[71,1961,623],{"class":109},[71,1963,626],{"class":77},[71,1965,1966],{"class":81}," \"Copied to: \"",[71,1968,632],{"class":77},[71,1970,1971],{"class":109}," copy_path ",[71,1973,626],{"class":77},[71,1975,640],{"class":81},[71,1977,644],{"class":643},[71,1979,647],{"class":81},[71,1981,116],{"class":109},[71,1983,1984],{"class":73,"line":1522},[71,1985,123],{"emptyLinePlaceholder":122},[71,1987,1988],{"class":73,"line":1536},[71,1989,1990],{"class":144},"    \u002F\u002F 检查两个文件都存在\n",[71,1992,1993,1995,1997,1999,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020],{"class":73,"line":1541},[71,1994,620],{"class":99},[71,1996,623],{"class":109},[71,1998,626],{"class":77},[71,2000,2001],{"class":81}," \"hello.txt exists: \"",[71,2003,632],{"class":77},[71,2005,100],{"class":99},[71,2007,110],{"class":109},[71,2009,166],{"class":99},[71,2011,1906],{"class":109},[71,2013,626],{"class":77},[71,2015,640],{"class":81},[71,2017,644],{"class":643},[71,2019,647],{"class":81},[71,2021,116],{"class":109},[71,2023,2024,2026,2028,2030,2033,2035,2037,2039,2041,2044,2046,2048,2050,2052],{"class":73,"line":1576},[71,2025,620],{"class":99},[71,2027,623],{"class":109},[71,2029,626],{"class":77},[71,2031,2032],{"class":81}," \"hello_copy.txt exists: \"",[71,2034,632],{"class":77},[71,2036,100],{"class":99},[71,2038,110],{"class":109},[71,2040,166],{"class":99},[71,2042,2043],{"class":109},"(copy_path) ",[71,2045,626],{"class":77},[71,2047,640],{"class":81},[71,2049,644],{"class":643},[71,2051,647],{"class":81},[71,2053,116],{"class":109},[71,2055,2056],{"class":73,"line":1581},[71,2057,123],{"emptyLinePlaceholder":122},[71,2059,2060],{"class":73,"line":1586},[71,2061,2062],{"class":144},"    \u002F\u002F 清理：删除测试目录\n",[71,2064,2065,2067,2069,2072],{"class":73,"line":1595},[71,2066,600],{"class":99},[71,2068,110],{"class":109},[71,2070,2071],{"class":99},"remove_all",[71,2073,2074],{"class":109},"(test_dir);\n",[71,2076,2078,2080,2082,2084,2087,2089,2091,2093,2095,2097,2099],{"class":73,"line":2077},41,[71,2079,620],{"class":99},[71,2081,623],{"class":109},[71,2083,626],{"class":77},[71,2085,2086],{"class":81}," \"Cleaned up: \"",[71,2088,632],{"class":77},[71,2090,1742],{"class":109},[71,2092,626],{"class":77},[71,2094,640],{"class":81},[71,2096,644],{"class":643},[71,2098,647],{"class":81},[71,2100,116],{"class":109},[71,2102,2104],{"class":73,"line":2103},42,[71,2105,123],{"emptyLinePlaceholder":122},[71,2107,2109,2111,2113],{"class":73,"line":2108},43,[71,2110,829],{"class":77},[71,2112,832],{"class":643},[71,2114,116],{"class":109},[71,2116,2118],{"class":73,"line":2117},44,[71,2119,840],{"class":109},[15,2121,2122,2125],{},[33,2123,2124],{},"Results","：",[62,2127,2130],{"className":2128,"code":2129,"language":852},[850],"Created: \"\u002Ftmp\u002Fcpp_test_demo\"\nCreated file: \"\u002Ftmp\u002Fcpp_test_demo\u002Fhello.txt\"\nFile size: 21 bytes\nCopied to: \"\u002Ftmp\u002Fcpp_test_demo\u002Fhello_copy.txt\"\nhello.txt exists: true\nhello_copy.txt exists: true\nCleaned up: \"\u002Ftmp\u002Fcpp_test_demo\"\n",[19,2131,2129],{"__ignoreMap":67},[10,2133,2135],{"id":2134},"runtime-results","runtime results",[15,2137,2138],{},"See the \"running results\" for each example above.",[10,2140,2142],{"id":2141},"key-syntax-explanation-in-the-example","Key syntax explanation in the example",[15,2144,2145],{},"|Here is the translation of the provided Simplified Chinese Markdown fragment into natural American English, following all specified rules.",[2147,2148],"hr",{},[370,2150,2151,2172],{},[373,2152,2153],{},[376,2154,2155,2160,2163,2166,2169],{},[379,2156,2157],{"align":381},[33,2158,2159],{},"Example",[379,2161,2162],{"align":381},"Discusses what",[379,2164,2165],{"align":381},"Newly emerged syntax",[379,2167,2168],{"align":381},"Why write it this way",[379,2170,2171],{"align":381},"Precautions",[387,2173,2174,2200,2219],{},[376,2175,2176,2179,2182,2194,2197],{},[392,2177,2178],{"align":381},"Example 1",[392,2180,2181],{"align":381},"Path information lookup",[392,2183,2184,2187,2188,2187,2191],{"align":381},[19,2185,2186],{},"fs::current_path()","、",[19,2189,2190],{},"exists()",[19,2192,2193],{},"filename()",[392,2195,2196],{"align":381},"Get the current path and its components.",[392,2198,2199],{"align":381},"All path operations are cross-platform.",[376,2201,2202,2205,2208,2213,2216],{},[392,2203,2204],{"align":381},"Example 2",[392,2206,2207],{"align":381},"Browse directory",[392,2209,2210],{"align":381},[19,2211,2212],{},"fs::directory_iterator",[392,2214,2215],{"align":381},"Iterate over all entries in the current directory",[392,2217,2218],{"align":381},"Only traverses the first level and does not recursively enter subdirectories.",[376,2220,2221,2224,2227,2235,2238],{},[392,2222,2223],{"align":381},"Example 3",[392,2225,2226],{"align":381},"recursive traversal and filtering",[392,2228,2229,2187,2232],{"align":381},[19,2230,2231],{},"fs::recursive_directory_iterator",[19,2233,2234],{},"extension()",[392,2236,2237],{"align":381},"Recursively find files with a specific suffix",[392,2239],{"align":381},[15,2241,2242],{},"When you need to recursively locate all files that end with a particular suffix in a directory and its subdirectories, here are the most common methods by platform:",[15,2244,2245,2248,2251,2252,2255,2256,2258,2259,2262],{},[33,2246,2247],{},"Command Line (Bash\u002FLinux\u002FmacOS):",[2249,2250],"br",{},"\nUse the ",[19,2253,2254],{},"find"," command.",[2249,2257],{},"\nExample: Find all ",[19,2260,2261],{},".txt"," files starting from the current directory.",[62,2264,2268],{"className":2265,"code":2266,"language":2267,"meta":67,"style":67},"language-bash shiki shiki-themes github-light github-dark","find . -type f -name \"*.txt\"\n","bash",[19,2269,2270],{"__ignoreMap":67},[71,2271,2272,2274,2277,2280,2283,2286],{"class":73,"line":74},[71,2273,2254],{"class":99},[71,2275,2276],{"class":81}," .",[71,2278,2279],{"class":643}," -type",[71,2281,2282],{"class":81}," f",[71,2284,2285],{"class":643}," -name",[71,2287,2288],{"class":81}," \"*.txt\"\n",[15,2290,2291,2294,2296,2297,2300,2301,2304,2305,2308,2309,2312,2313,2258,2315,2318],{},[33,2292,2293],{},"Command Line (PowerShell\u002FWindows):",[2249,2295],{},"\nUse ",[19,2298,2299],{},"Get-ChildItem"," (alias ",[19,2302,2303],{},"gci"," or ",[19,2306,2307],{},"dir",") with the ",[19,2310,2311],{},"-Recurse"," flag.",[2249,2314],{},[19,2316,2317],{},".log"," files recursively.",[62,2320,2324],{"className":2321,"code":2322,"language":2323,"meta":67,"style":67},"language-powershell shiki shiki-themes github-light github-dark","Get-ChildItem -Path . -Recurse -Filter *.log\n","powershell",[19,2325,2326],{"__ignoreMap":67},[71,2327,2328],{"class":73,"line":74},[71,2329,2322],{},[15,2331,2332,2335,2296,2337,2340,2341,2344,2345,2347,2348,2350],{},[33,2333,2334],{},"Programming (Python):",[2249,2336],{},[19,2338,2339],{},"os.walk()"," or the ",[19,2342,2343],{},"pathlib"," module (recommended for clarity).",[2249,2346],{},"\nExample using ",[19,2349,2343],{},":",[62,2352,2356],{"className":2353,"code":2354,"language":2355,"meta":67,"style":67},"language-python shiki shiki-themes github-light github-dark","from pathlib import Path\n\nsuffix = \".py\"\nfor p in Path('.').rglob(f'*{suffix}'):\n    print(p)\n","python",[19,2357,2358,2372,2376,2386,2426],{"__ignoreMap":67},[71,2359,2360,2363,2366,2369],{"class":73,"line":74},[71,2361,2362],{"class":77},"from",[71,2364,2365],{"class":109}," pathlib ",[71,2367,2368],{"class":77},"import",[71,2370,2371],{"class":109}," Path\n",[71,2373,2374],{"class":73,"line":119},[71,2375,123],{"emptyLinePlaceholder":122},[71,2377,2378,2381,2383],{"class":73,"line":126},[71,2379,2380],{"class":109},"suffix ",[71,2382,135],{"class":77},[71,2384,2385],{"class":81}," \".py\"\n",[71,2387,2388,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423],{"class":73,"line":148},[71,2389,313],{"class":77},[71,2391,2392],{"class":109}," p ",[71,2394,2395],{"class":77},"in",[71,2397,2398],{"class":109}," Path(",[71,2400,2401],{"class":81},"'.'",[71,2403,2404],{"class":109},").rglob(",[71,2406,2407],{"class":77},"f",[71,2409,2410],{"class":81},"'*",[71,2412,2413],{"class":643},"{",[71,2415,2416],{"class":109},"suffix",[71,2418,2419],{"class":643},"}",[71,2421,2422],{"class":81},"'",[71,2424,2425],{"class":109},"):\n",[71,2427,2428,2431],{"class":73,"line":153},[71,2429,2430],{"class":643},"    print",[71,2432,2433],{"class":109},"(p)\n",[15,2435,2436,2439,2296,2441,49,2444,2446],{},[33,2437,2438],{},"Programming (Java):",[2249,2440],{},[19,2442,2443],{},"Files.walk()",[2249,2445],{},"\nExample:",[62,2448,2452],{"className":2449,"code":2450,"language":2451,"meta":67,"style":67},"language-java shiki shiki-themes github-light github-dark","import java.nio.file.*;\nimport java.util.stream.Stream;\n\nString suffix = \".java\";\ntry (Stream\u003CPath> paths = Files.walk(Paths.get(\".\"))) {\n    paths.filter(Files::isRegularFile)\n         .filter(p -> p.toString().endsWith(suffix))\n         .forEach(System.out::println);\n} catch (Exception e) { e.printStackTrace(); }\n","java",[19,2453,2454,2466,2473,2477,2489,2525,2541,2568,2583],{"__ignoreMap":67},[71,2455,2456,2458,2461,2464],{"class":73,"line":74},[71,2457,2368],{"class":77},[71,2459,2460],{"class":109}," java.nio.file.",[71,2462,2463],{"class":643},"*",[71,2465,116],{"class":109},[71,2467,2468,2470],{"class":73,"line":119},[71,2469,2368],{"class":77},[71,2471,2472],{"class":109}," java.util.stream.Stream;\n",[71,2474,2475],{"class":73,"line":126},[71,2476,123],{"emptyLinePlaceholder":122},[71,2478,2479,2482,2484,2487],{"class":73,"line":148},[71,2480,2481],{"class":109},"String suffix ",[71,2483,135],{"class":77},[71,2485,2486],{"class":81}," \".java\"",[71,2488,116],{"class":109},[71,2490,2491,2494,2497,2500,2503,2505,2508,2511,2514,2517,2519,2522],{"class":73,"line":153},[71,2492,2493],{"class":77},"try",[71,2495,2496],{"class":109}," (Stream\u003C",[71,2498,2499],{"class":77},"Path",[71,2501,2502],{"class":109},"> paths ",[71,2504,135],{"class":77},[71,2506,2507],{"class":109}," Files.",[71,2509,2510],{"class":99},"walk",[71,2512,2513],{"class":109},"(Paths.",[71,2515,2516],{"class":99},"get",[71,2518,1207],{"class":109},[71,2520,2521],{"class":81},"\".\"",[71,2523,2524],{"class":109},"))) {\n",[71,2526,2527,2530,2533,2536,2538],{"class":73,"line":159},[71,2528,2529],{"class":109},"    paths.",[71,2531,2532],{"class":99},"filter",[71,2534,2535],{"class":109},"(Files",[71,2537,110],{"class":77},[71,2539,2540],{"class":109},"isRegularFile)\n",[71,2542,2543,2546,2548,2551,2554,2557,2560,2562,2565],{"class":73,"line":175},[71,2544,2545],{"class":109},"         .",[71,2547,2532],{"class":99},[71,2549,2550],{"class":109},"(p ",[71,2552,2553],{"class":77},"->",[71,2555,2556],{"class":109}," p.",[71,2558,2559],{"class":99},"toString",[71,2561,1069],{"class":109},[71,2563,2564],{"class":99},"endsWith",[71,2566,2567],{"class":109},"(suffix))\n",[71,2569,2570,2572,2575,2578,2580],{"class":73,"line":190},[71,2571,2545],{"class":109},[71,2573,2574],{"class":99},"forEach",[71,2576,2577],{"class":109},"(System.out",[71,2579,110],{"class":77},[71,2581,2582],{"class":109},"println);\n",[71,2584,2585,2588,2591,2594,2597,2600,2603],{"class":73,"line":205},[71,2586,2587],{"class":109},"} ",[71,2589,2590],{"class":77},"catch",[71,2592,2593],{"class":109}," (Exception ",[71,2595,2596],{"class":1221},"e",[71,2598,2599],{"class":109},") { e.",[71,2601,2602],{"class":99},"printStackTrace",[71,2604,2605],{"class":109},"(); }\n",[15,2607,2608,2609,2187,2612,2187,2615,2618,2619,2621],{},"All these methods will traverse directories recursively to match your target file suffix.|Recursive traversal can be slow, so watch out for directory depth.|\n|Example 4|create, copy, delete|",[19,2610,2611],{},"create_directory()",[19,2613,2614],{},"copy()",[19,2616,2617],{},"remove_all()","|Common file operations, cross-platform|",[19,2620,2071],{}," is similar to rm -rf, use with caution|",[10,2623,2625],{"id":2624},"exception-based-version-vs-error_code-version","Exception-based version vs error_code version",[15,2627,2628],{},"Many filesystem functions have two usage methods:",[62,2630,2632],{"className":64,"code":2631,"language":66,"meta":67,"style":67},"auto size = fs::file_size(path);      \u002F\u002F 失败时抛异常\n\nstd::error_code ec;\nauto size = fs::file_size(path, ec);  \u002F\u002F 失败时不抛异常，错误写入 ec\n",[19,2633,2634,2656,2660,2667],{"__ignoreMap":67},[71,2635,2636,2639,2642,2644,2646,2648,2650,2653],{"class":73,"line":74},[71,2637,2638],{"class":77},"auto",[71,2640,2641],{"class":109}," size ",[71,2643,135],{"class":77},[71,2645,100],{"class":99},[71,2647,110],{"class":109},[71,2649,212],{"class":99},[71,2651,2652],{"class":109},"(path);",[71,2654,2655],{"class":144},"      \u002F\u002F 失败时抛异常\n",[71,2657,2658],{"class":73,"line":119},[71,2659,123],{"emptyLinePlaceholder":122},[71,2661,2662,2664],{"class":73,"line":126},[71,2663,1184],{"class":99},[71,2665,2666],{"class":109},"::error_code ec;\n",[71,2668,2669,2671,2673,2675,2677,2679,2681,2684],{"class":73,"line":148},[71,2670,2638],{"class":77},[71,2672,2641],{"class":109},[71,2674,135],{"class":77},[71,2676,100],{"class":99},[71,2678,110],{"class":109},[71,2680,212],{"class":99},[71,2682,2683],{"class":109},"(path, ec);",[71,2685,2686],{"class":144},"  \u002F\u002F 失败时不抛异常，错误写入 ec\n",[370,2688,2689,2702],{},[373,2690,2691],{},[376,2692,2693,2696,2699],{},[379,2694,2695],{"align":381},"writing method",[379,2697,2698],{"align":381},"Advantages",[379,2700,2701],{"align":381},"Suitable scenarios",[387,2703,2704,2715],{},[376,2705,2706,2709,2712],{},[392,2707,2708],{"align":381},"Throw Exception Version",[392,2710,2711],{"align":381},"Short code automatically interrupts on failure",[392,2713,2714],{"align":381},"The file should exist; failure is an exception.",[376,2716,2717,2723,2726],{},[392,2718,2719,2722],{"align":381},[19,2720,2721],{},"error_code"," version",[392,2724,2725],{"align":381},"Do not throw exceptions, convenient for continuous processing.",[392,2727,2728],{"align":381},"Scanning a large number of files, with uncertain permissions, allowing skipping of failed items",[529,2730,2732],{"id":2731},"example-5-skipping-failed-items-with-error_code-during-directory-scanning","Example 5: Skipping Failed Items with error_code During Directory Scanning",[62,2734,2736],{"className":64,"code":2735,"language":66,"meta":67,"style":67},"#include \u003Cfilesystem>\n#include \u003Ciostream>\n#include \u003Csystem_error>\n\n\u002F\u002F filesystem 用来跨平台处理路径、文件和目录。\nnamespace fs = std::filesystem;\n\nint main()\n{\n    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n    fs::path dir = fs::current_path();\n\n    for (const auto& entry : fs::directory_iterator(dir))\n    {\n        std::error_code ec;\n        auto size = fs::file_size(entry.path(), ec);\n\n        if (ec)\n        {\n            std::cout \u003C\u003C \"[skip] \" \u003C\u003C entry.path().filename().string()\n                      \u003C\u003C \" reason: \" \u003C\u003C ec.message() \u003C\u003C \"\\n\";\n            continue;\n        }\n\n        std::cout \u003C\u003C entry.path().filename().string()\n                  \u003C\u003C \" size = \" \u003C\u003C size \u003C\u003C \"\\n\";\n    }\n\n    return 0;\n}\n",[19,2737,2738,2744,2750,2757,2761,2766,2782,2786,2794,2798,2803,2819,2823,2843,2847,2853,2875,2879,2886,2890,2918,2946,2953,2957,2961,2983,3005,3009,3013,3021],{"__ignoreMap":67},[71,2739,2740,2742],{"class":73,"line":74},[71,2741,78],{"class":77},[71,2743,82],{"class":81},[71,2745,2746,2748],{"class":73,"line":119},[71,2747,78],{"class":77},[71,2749,544],{"class":81},[71,2751,2752,2754],{"class":73,"line":126},[71,2753,78],{"class":77},[71,2755,2756],{"class":81}," \u003Csystem_error>\n",[71,2758,2759],{"class":73,"line":148},[71,2760,123],{"emptyLinePlaceholder":122},[71,2762,2763],{"class":73,"line":153},[71,2764,2765],{"class":144},"\u002F\u002F filesystem 用来跨平台处理路径、文件和目录。\n",[71,2767,2768,2770,2772,2774,2776,2778,2780],{"class":73,"line":159},[71,2769,96],{"class":77},[71,2771,100],{"class":99},[71,2773,103],{"class":77},[71,2775,106],{"class":99},[71,2777,110],{"class":109},[71,2779,113],{"class":99},[71,2781,116],{"class":109},[71,2783,2784],{"class":73,"line":175},[71,2785,123],{"emptyLinePlaceholder":122},[71,2787,2788,2790,2792],{"class":73,"line":190},[71,2789,579],{"class":77},[71,2791,582],{"class":99},[71,2793,585],{"class":109},[71,2795,2796],{"class":73,"line":205},[71,2797,590],{"class":109},[71,2799,2800],{"class":73,"line":220},[71,2801,2802],{"class":144},"    \u002F\u002F 程序从 main 函数开始执行，下面的语句会按顺序运行。\n",[71,2804,2805,2807,2809,2811,2813,2815,2817],{"class":73,"line":225},[71,2806,600],{"class":99},[71,2808,918],{"class":109},[71,2810,135],{"class":77},[71,2812,100],{"class":99},[71,2814,110],{"class":109},[71,2816,612],{"class":99},[71,2818,615],{"class":109},[71,2820,2821],{"class":73,"line":231},[71,2822,123],{"emptyLinePlaceholder":122},[71,2824,2825,2827,2829,2831,2833,2835,2837,2839,2841],{"class":73,"line":246},[71,2826,990],{"class":77},[71,2828,316],{"class":109},[71,2830,319],{"class":77},[71,2832,322],{"class":77},[71,2834,325],{"class":109},[71,2836,129],{"class":99},[71,2838,110],{"class":109},[71,2840,332],{"class":99},[71,2842,1007],{"class":109},[71,2844,2845],{"class":73,"line":262},[71,2846,1012],{"class":109},[71,2848,2849,2851],{"class":73,"line":277},[71,2850,1017],{"class":99},[71,2852,2666],{"class":109},[71,2854,2855,2858,2860,2862,2864,2866,2868,2870,2872],{"class":73,"line":299},[71,2856,2857],{"class":77},"        auto",[71,2859,2641],{"class":109},[71,2861,135],{"class":77},[71,2863,100],{"class":99},[71,2865,110],{"class":109},[71,2867,212],{"class":99},[71,2869,1323],{"class":109},[71,2871,1066],{"class":99},[71,2873,2874],{"class":109},"(), ec);\n",[71,2876,2877],{"class":73,"line":304},[71,2878,123],{"emptyLinePlaceholder":122},[71,2880,2881,2883],{"class":73,"line":310},[71,2882,1278],{"class":77},[71,2884,2885],{"class":109}," (ec)\n",[71,2887,2888],{"class":73,"line":341},[71,2889,1312],{"class":109},[71,2891,2892,2895,2897,2899,2902,2904,2906,2908,2910,2912,2914,2916],{"class":73,"line":837},[71,2893,2894],{"class":99},"            std",[71,2896,623],{"class":109},[71,2898,626],{"class":77},[71,2900,2901],{"class":81}," \"[skip] \"",[71,2903,632],{"class":77},[71,2905,1025],{"class":109},[71,2907,1066],{"class":99},[71,2909,1069],{"class":109},[71,2911,747],{"class":99},[71,2913,1069],{"class":109},[71,2915,1076],{"class":99},[71,2917,585],{"class":109},[71,2919,2920,2923,2926,2928,2931,2934,2936,2938,2940,2942,2944],{"class":73,"line":1108},[71,2921,2922],{"class":77},"                      \u003C\u003C",[71,2924,2925],{"class":81}," \" reason: \"",[71,2927,632],{"class":77},[71,2929,2930],{"class":109}," ec.",[71,2932,2933],{"class":99},"message",[71,2935,750],{"class":109},[71,2937,626],{"class":77},[71,2939,640],{"class":81},[71,2941,644],{"class":643},[71,2943,647],{"class":81},[71,2945,116],{"class":109},[71,2947,2948,2951],{"class":73,"line":1362},[71,2949,2950],{"class":77},"            continue",[71,2952,116],{"class":109},[71,2954,2955],{"class":73,"line":1367},[71,2956,1333],{"class":109},[71,2958,2959],{"class":73,"line":1391},[71,2960,123],{"emptyLinePlaceholder":122},[71,2962,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981],{"class":73,"line":1396},[71,2964,1017],{"class":99},[71,2966,623],{"class":109},[71,2968,626],{"class":77},[71,2970,1025],{"class":109},[71,2972,1066],{"class":99},[71,2974,1069],{"class":109},[71,2976,747],{"class":99},[71,2978,1069],{"class":109},[71,2980,1076],{"class":99},[71,2982,585],{"class":109},[71,2984,2985,2988,2991,2993,2995,2997,2999,3001,3003],{"class":73,"line":1415},[71,2986,2987],{"class":77},"                  \u003C\u003C",[71,2989,2990],{"class":81}," \" size = \"",[71,2992,632],{"class":77},[71,2994,2641],{"class":109},[71,2996,626],{"class":77},[71,2998,640],{"class":81},[71,3000,644],{"class":643},[71,3002,647],{"class":81},[71,3004,116],{"class":109},[71,3006,3007],{"class":73,"line":1420},[71,3008,1093],{"class":109},[71,3010,3011],{"class":73,"line":1446},[71,3012,123],{"emptyLinePlaceholder":122},[71,3014,3015,3017,3019],{"class":73,"line":1457},[71,3016,829],{"class":77},[71,3018,832],{"class":643},[71,3020,116],{"class":109},[71,3022,3023],{"class":73,"line":1462},[71,3024,840],{"class":109},[15,3026,3027,1116],{},[33,3028,1115],{},[62,3030,3033],{"className":3031,"code":3032,"language":852},[850],"[skip] content reason: Is a directory\npackage.json size = 1234\nREADME.md size = 2048\n",[19,3034,3032],{"__ignoreMap":67},[15,3036,3037,3038,3040],{},"When scanning directories, encountering directories with insufficient permissions or abnormal symbolic links is quite common. Using ",[19,3039,2721],{}," allows the program to skip problematic items and continue running, rather than exiting upon the first failure.",[10,3042,3044],{"id":3043},"common-errors","Common Errors",[15,3046,3047],{},[33,3048,3049],{},"Error 1: Forgetting to check exists before operating on it",[62,3051,3053],{"className":64,"code":3052,"language":66,"meta":67,"style":67},"std::cout \u003C\u003C fs::file_size(\"\u002Fnonexistent\");  \u002F\u002F ❌ 抛异常！\n",[19,3054,3055],{"__ignoreMap":67},[71,3056,3057,3059,3061,3063,3065,3067,3069,3071,3074,3076],{"class":73,"line":74},[71,3058,1184],{"class":99},[71,3060,623],{"class":109},[71,3062,626],{"class":77},[71,3064,100],{"class":99},[71,3066,110],{"class":109},[71,3068,212],{"class":99},[71,3070,1207],{"class":109},[71,3072,3073],{"class":81},"\"\u002Fnonexistent\"",[71,3075,293],{"class":109},[71,3077,3078],{"class":144},"  \u002F\u002F ❌ 抛异常！\n",[15,3080,3081,3082,3084],{},"The correct approach: perform a ",[19,3083,2190],{}," check first, or use try-catch.",[15,3086,3087],{},[33,3088,3089,3090,3092,3093],{},"Error 2: Confusion between ",[19,3091,238],{}," and ",[19,3094,3095],{},"create_directories",[62,3097,3099],{"className":64,"code":3098,"language":66,"meta":67,"style":67},"fs::create_directory(\"a\u002Fb\u002Fc\");  \u002F\u002F ❌ 如果 a\u002Fb 不存在则失败！\n",[19,3100,3101],{"__ignoreMap":67},[71,3102,3103,3105,3107,3109,3111,3114,3116],{"class":73,"line":74},[71,3104,129],{"class":99},[71,3106,110],{"class":109},[71,3108,238],{"class":99},[71,3110,1207],{"class":109},[71,3112,3113],{"class":81},"\"a\u002Fb\u002Fc\"",[71,3115,293],{"class":109},[71,3117,3118],{"class":144},"  \u002F\u002F ❌ 如果 a\u002Fb 不存在则失败！\n",[15,3120,3121,3122,3125],{},"Correct approach: ",[19,3123,3124],{},"fs::create_directories(\"a\u002Fb\u002Fc\");"," will create recursively.",[15,3127,3128],{},[33,3129,3130,3131],{},"Error 3: Comparing path with ",[19,3132,1302],{},[62,3134,3136],{"className":64,"code":3135,"language":66,"meta":67,"style":67},"if (path1 == path2)  \u002F\u002F 只是字符串比较！\n",[19,3137,3138],{"__ignoreMap":67},[71,3139,3140,3143,3146,3148,3151],{"class":73,"line":74},[71,3141,3142],{"class":77},"if",[71,3144,3145],{"class":109}," (path1 ",[71,3147,1302],{"class":77},[71,3149,3150],{"class":109}," path2)",[71,3152,3153],{"class":144},"  \u002F\u002F 只是字符串比较！\n",[15,3155,3156,3157,3092,3160,3163,3164,3167],{},"The paths ",[19,3158,3159],{},"\u002Fhome\u002Fuser",[19,3161,3162],{},"\u002Fhome\u002Fuser\u002F"," might not be equal, use ",[19,3165,3166],{},"fs::equivalent(p1, p2)"," for normalized comparison.",[15,3169,3170],{},[33,3171,3172,3173,3176],{},"Error 4: ",[19,3174,3175],{},"-lstdc++fs"," is required when linking (legacy compiler)",[15,3178,3179,3180,3183,3184,3187],{},"In GCC 8 and earlier, it was necessary to link the ",[19,3181,3182],{},"stdc++fs"," library: ",[19,3185,3186],{},"g++ -std=c++17 file.cpp -lstdc++fs",". GCC 9+ and Clang do not require this.",[10,3189,3190],{"id":3190},"使用建议",[3192,3193,3194,3198,3201,3204,3207],"ul",{},[3195,3196,3197],"li",{},"明确目标：在开始前确定您的具体需求，以便选择最合适的工具或教程。",[3195,3199,3200],{},"充分利用资源：参考官方文档、教程和博客，这些资料能帮助您快速上手并解决问题。",[3195,3202,3203],{},"实践应用：通过动手操作项目或编写代码来巩固学习成果，提升实际操作能力。",[3195,3205,3206],{},"问题解决：遇到困难时，查阅参考资料或寻求社区支持，逐步培养独立解决问题的能力。",[3195,3208,3209],{},"分享经验：完成项目后，可以撰写文章或博客分享心得，帮助其他学习者。",[15,3211,3212],{},"如果需要针对特定领域（如单片机、机器人或环境搭建）的进一步建议，请提供更多信息，我将为您细化内容。",[3214,3215,3216,3226,3239,3247,3257,3263],"ol",{},[3195,3217,3218,3225],{},[33,3219,3220,3221,3224],{},"Use ",[19,3222,3223],{},"namespace fs = std::filesystem;"," to simplify code",": This abbreviation is almost a community standard.",[3195,3227,3228,3234,3235,3238],{},[33,3229,3230,3231,3233],{},"Concatenating paths with the ",[19,3232,522],{}," operator",": ",[19,3236,3237],{},"auto p = base \u002F \"subdir\" \u002F \"file.txt\";",", concise and cross-platform.",[3195,3240,3241,3246],{},[33,3242,3243,3244],{},"Traversing large directories with ",[19,3245,332],{},"：Avoid loading all files at once.",[3195,3248,3249,3252,3253,3256],{},[33,3250,3251],{},"Exception safety in file operations",": Many filesystem functions throw ",[19,3254,3255],{},"fs::filesystem_error"," when they fail.",[3195,3258,3259,3262],{},[33,3260,3261],{},"C++17 filesystem is generally sufficient",": C++20\u002F23 added some convenience functions but the core remains unchanged.",[3195,3264,3265,3268],{},[33,3266,3267],{},"Consider error_code overloads when scanning large files",": Prevent a single error condition from interrupting the entire scan.",[10,3270,3272],{"id":3271},"summary","Summary",[3192,3274,3275,3280,3297,3311,3317],{},[3195,3276,3277,3279],{},[19,3278,5],{}," provides cross-platform file system operations.",[3195,3281,3282,3285,3286,3288,3289,522,3291,522,3293,3296],{},[19,3283,3284],{},"fs::path"," is a path class that supports joining and splitting (",[19,3287,522],{},", ",[19,3290,2193],{},[19,3292,2234],{},[19,3294,3295],{},"parent_path()",").",[3195,3298,3299,3301,3302,3304,3305,522,3307,3310],{},[19,3300,2190],{}," check for existence, ",[19,3303,2611],{}," create directories, ",[19,3306,2614],{},[19,3308,3309],{},"remove()"," and operate files.",[3195,3312,3313,3314,3316],{},"Traverse the directory, ",[19,3315,358],{}," recursively traverse.",[3195,3318,3319,3320,3322],{},"Check ",[19,3321,2190],{}," before operation, paying attention to exception handling.",[3324,3325,3326],"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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":67,"searchDepth":119,"depth":119,"links":3328},[3329,3330,3331,3332,3333,3334,3335,3341,3342,3343,3346,3347,3348],{"id":12,"depth":119,"text":13},{"id":39,"depth":119,"text":40},{"id":52,"depth":119,"text":53},{"id":59,"depth":119,"text":60},{"id":85,"depth":119,"text":86},{"id":367,"depth":119,"text":368},{"id":526,"depth":119,"text":527,"children":3336},[3337,3338,3339,3340],{"id":531,"depth":126,"text":532},{"id":857,"depth":126,"text":858},{"id":1125,"depth":126,"text":1126},{"id":1612,"depth":126,"text":1613},{"id":2134,"depth":119,"text":2135},{"id":2141,"depth":119,"text":2142},{"id":2624,"depth":119,"text":2625,"children":3344},[3345],{"id":2731,"depth":126,"text":2732},{"id":3043,"depth":119,"text":3044},{"id":3190,"depth":119,"text":3190},{"id":3271,"depth":119,"text":3272},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","2000-2000","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-2000-std-filesystem",false,null,"en-US","en-us",{},{"title":5,"description":67},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","sNm9RNqJlPCZSJRbqwWtjdcLsrwX5L-oFbFLYLomPTo",[3368,3374,3379,3384,3389,3394,3399,3404,3409,3414,3419,3424,3429,3434,3439,3444,3449,3454,3459,3464,3469,3474,3479,3484,3489,3494,3499,3504,3509,3514,3519,3524,3529,3534,3539,3544,3549,3554,3558,3563,3568,3573,3578,3583,3588,3593,3598,3603,3608,3613,3618,3623,3628,3633,3638,3643,3648,3653,3658,3663,3668,3669,3674,3679,3684,3689,3694,3699,3704,3709,3714,3719,3724,3729,3734,3739,3744,3749,3754,3759,3764,3769],{"path":3369,"stem":3370,"title":3371,"date":3351,"chapterOrder":3372,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3375,"stem":3376,"title":3377,"date":3351,"chapterOrder":3378,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3380,"stem":3381,"title":3382,"date":3351,"chapterOrder":3383,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3385,"stem":3386,"title":3387,"date":3351,"chapterOrder":3388,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3390,"stem":3391,"title":3392,"date":3351,"chapterOrder":3393,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3395,"stem":3396,"title":3397,"date":3351,"chapterOrder":3398,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3400,"stem":3401,"title":3402,"date":3351,"chapterOrder":3403,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","array","0700",{"path":3405,"stem":3406,"title":3407,"date":3351,"chapterOrder":3408,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3410,"stem":3411,"title":3412,"date":3351,"chapterOrder":3413,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","pointer","0900",{"path":3415,"stem":3416,"title":3417,"date":3351,"chapterOrder":3418,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3420,"stem":3421,"title":3422,"date":3351,"chapterOrder":3423,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3425,"stem":3426,"title":3427,"date":3351,"chapterOrder":3428,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","reference","1200",{"path":3430,"stem":3431,"title":3432,"date":3351,"chapterOrder":3433,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3435,"stem":3436,"title":3437,"date":3351,"chapterOrder":3438,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3440,"stem":3441,"title":3442,"date":3351,"chapterOrder":3443,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3445,"stem":3446,"title":3447,"date":3351,"chapterOrder":3448,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3450,"stem":3451,"title":3452,"date":3351,"chapterOrder":3453,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3455,"stem":3456,"title":3457,"date":3351,"chapterOrder":3458,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3460,"stem":3461,"title":3462,"date":3351,"chapterOrder":3463,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3465,"stem":3466,"title":3467,"date":3351,"chapterOrder":3468,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3470,"stem":3471,"title":3472,"date":3351,"chapterOrder":3473,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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","1500",{"path":3475,"stem":3476,"title":3477,"date":3351,"chapterOrder":3478,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3480,"stem":3481,"title":3482,"date":3351,"chapterOrder":3483,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","template","1700",{"path":3485,"stem":3486,"title":3487,"date":3351,"chapterOrder":3488,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3490,"stem":3491,"title":3492,"date":3351,"chapterOrder":3493,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3495,"stem":3496,"title":3497,"date":3351,"chapterOrder":3498,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3500,"stem":3501,"title":3502,"date":3351,"chapterOrder":3503,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3505,"stem":3506,"title":3507,"date":3351,"chapterOrder":3508,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3510,"stem":3511,"title":3512,"date":3351,"chapterOrder":3513,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3515,"stem":3516,"title":3517,"date":3351,"chapterOrder":3518,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3520,"stem":3521,"title":3522,"date":3351,"chapterOrder":3523,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3525,"stem":3526,"title":3527,"date":3351,"chapterOrder":3528,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3530,"stem":3531,"title":3532,"date":3351,"chapterOrder":3533,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3535,"stem":3536,"title":3537,"date":3351,"chapterOrder":3538,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3540,"stem":3541,"title":3542,"date":3351,"chapterOrder":3543,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3545,"stem":3546,"title":3547,"date":3351,"chapterOrder":3548,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3550,"stem":3551,"title":3552,"date":3351,"chapterOrder":3553,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3555,"stem":3556,"title":2638,"date":3351,"chapterOrder":3557,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3559,"stem":3560,"title":3561,"date":3351,"chapterOrder":3562,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3564,"stem":3565,"title":3566,"date":3351,"chapterOrder":3567,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":3569,"stem":3570,"title":3571,"date":3351,"chapterOrder":3572,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3574,"stem":3575,"title":3576,"date":3351,"chapterOrder":3577,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3579,"stem":3580,"title":3581,"date":3351,"chapterOrder":3582,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3584,"stem":3585,"title":3586,"date":3351,"chapterOrder":3587,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3589,"stem":3590,"title":3591,"date":3351,"chapterOrder":3592,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3594,"stem":3595,"title":3596,"date":3351,"chapterOrder":3597,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3599,"stem":3600,"title":3601,"date":3351,"chapterOrder":3602,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3604,"stem":3605,"title":3606,"date":3351,"chapterOrder":3607,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3609,"stem":3610,"title":3611,"date":3351,"chapterOrder":3612,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3614,"stem":3615,"title":3616,"date":3351,"chapterOrder":3617,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3619,"stem":3620,"title":3621,"date":3351,"chapterOrder":3622,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3624,"stem":3625,"title":3626,"date":3351,"chapterOrder":3627,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3629,"stem":3630,"title":3631,"date":3351,"chapterOrder":3632,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3634,"stem":3635,"title":3636,"date":3351,"chapterOrder":3637,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3639,"stem":3640,"title":3641,"date":3351,"chapterOrder":3642,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":3644,"stem":3645,"title":3646,"date":3351,"chapterOrder":3647,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3649,"stem":3650,"title":3651,"date":3351,"chapterOrder":3652,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3654,"stem":3655,"title":3656,"date":3351,"chapterOrder":3657,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3659,"stem":3660,"title":3661,"date":3351,"chapterOrder":3662,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3664,"stem":3665,"title":3666,"date":3351,"chapterOrder":3667,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3349,"stem":3365,"title":5,"date":3351,"chapterOrder":3350,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},{"path":3670,"stem":3671,"title":3672,"date":3351,"chapterOrder":3673,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3675,"stem":3676,"title":3677,"date":3351,"chapterOrder":3678,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3680,"stem":3681,"title":3682,"date":3351,"chapterOrder":3683,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3685,"stem":3686,"title":3687,"date":3351,"chapterOrder":3688,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3690,"stem":3691,"title":3692,"date":3351,"chapterOrder":3693,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3695,"stem":3696,"title":3697,"date":3351,"chapterOrder":3698,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3700,"stem":3701,"title":3702,"date":3351,"chapterOrder":3703,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3705,"stem":3706,"title":3707,"date":3351,"chapterOrder":3708,"chapterDepth":119,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3710,"stem":3711,"title":3712,"date":3351,"chapterOrder":3713,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3715,"stem":3716,"title":3717,"date":3351,"chapterOrder":3718,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3720,"stem":3721,"title":3722,"date":3351,"chapterOrder":3723,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3725,"stem":3726,"title":3727,"date":3351,"chapterOrder":3728,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3730,"stem":3731,"title":3732,"date":3351,"chapterOrder":3733,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3735,"stem":3736,"title":3737,"date":3351,"chapterOrder":3738,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3740,"stem":3741,"title":3742,"date":3351,"chapterOrder":3743,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3745,"stem":3746,"title":3747,"date":3351,"chapterOrder":3748,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3750,"stem":3751,"title":3752,"date":3351,"chapterOrder":3753,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3755,"stem":3756,"title":3757,"date":3351,"chapterOrder":3758,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3760,"stem":3761,"title":3762,"date":3351,"chapterOrder":3763,"chapterDepth":74,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3765,"stem":3766,"title":3767,"date":3351,"chapterOrder":3768,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":3358},"\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":3354,"stem":3770,"title":3771,"date":3351,"chapterOrder":3359,"chapterDepth":3373,"docKey":3353,"docRoot":3354,"docTitle":3355,"isWikiDoc":122,"isWikiIndex":122},"_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++ tutorial",{"variants":3773},[3774,3775,3778,3781,3784],{"path":3349,"localeSlug":3361,"i18nKey":3357},{"path":3776,"localeSlug":3777,"i18nKey":3357},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","zh-hant",{"path":3779,"localeSlug":3780,"i18nKey":3357},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","zh-hk",{"path":3782,"localeSlug":3783,"i18nKey":3357},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","zh-tw",{"path":3785,"localeSlug":3786,"i18nKey":3357},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","zh-cn",[3349,3364,3776,3364,3779,3364,3782,3364,3785,3364],1784646870068]