[{"data":1,"prerenderedAt":2640},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr":2219,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr":2624,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr":2639},{"id":4,"title":5,"body":6,"canonicalPath":2201,"chapterDepth":117,"chapterOrder":2202,"date":2203,"description":110,"docI18nKey":2204,"docKey":2205,"docRoot":2206,"docTitle":2207,"extension":2208,"i18nKey":2209,"isBlogPost":2210,"isWikiDoc":188,"isWikiIndex":2210,"layout":2211,"legacyPath":2211,"locale":2212,"localeSlug":2213,"meta":2214,"navigation":188,"path":2201,"seo":2215,"sourcePath":2216,"sourceStem":2209,"stem":2217,"wikiDepth":117,"__hash__":2218},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr.md","nullptr",{"type":7,"value":8,"toc":2181},"minimark",[9,14,27,54,59,63,76,80,83,87,100,104,241,245,316,320,325,418,422,427,695,701,709,713,1020,1024,1030,1034,1390,1394,1400,1404,1758,1762,1768,1772,1775,1779,1782,1785,1897,1901,1906,1954,1960,1968,1988,1994,2002,2023,2033,2038,2059,2067,2070,2087,2090,2139,2143,2177],[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",{},"In traditional C\u002FC++, ",[19,20,21],"code",{},"NULL"," or ",[19,24,25],{},"0"," is used to represent a null pointer. However, this presents a problem:",[28,29,30,48],"ul",{},[31,32,33,35,36,38,39,42,43,47],"li",{},[19,34,21],{}," is actually ",[19,37,25],{}," (defined as ",[19,40,41],{},"#define NULL 0"," in C++) and is treated as an ",[44,45,46],"strong",{},"integer",", leading to a type mismatch.",[31,49,50,51,53],{},"In some overloaded functions, ",[19,52,21],{}," may match the integer version of the function rather than the pointer version.",[15,55,56,58],{},[19,57,5],{}," is the true \"void pointer type,\" resolving these type safety issues.",[10,60,62],{"id":61},"what-is-this-feature","What is this feature?",[15,64,65,67,68,71,72,75],{},[19,66,5],{}," is a keyword introduced in C++11, its type is ",[19,69,70],{},"std::nullptr_t",", it can be implicitly converted to a pointer of any type, but it ",[44,73,74],{},"cannot"," be implicitly converted to an integer type. This allows the compiler to distinguish between a \"null pointer\" and \"integer 0\".",[10,77,79],{"id":78},"c-standard-version","C++ standard version",[15,81,82],{},"C++11",[10,84,86],{"id":85},"required-header-files","Required header files",[15,88,89,90,92,93,95,96,99],{},"No additional header files are required. ",[19,91,5],{}," is a language keyword. If you need to use the ",[19,94,70],{}," type, you must include ",[19,97,98],{},"#include \u003Ccstddef>",".",[10,101,103],{"id":102},"basic-syntax","Basic Syntax",[105,106,111],"pre",{"className":107,"code":108,"language":109,"meta":110,"style":110},"language-cpp shiki shiki-themes github-light github-dark","int* p = nullptr;           \u002F\u002F 空 int 指针\ndouble* d = nullptr;        \u002F\u002F 空 double 指针\nstd::shared_ptr\u003Cint> sp = nullptr;  \u002F\u002F 空智能指针\n\n\u002F\u002F 判断空指针\nif (p == nullptr) { ... }\nif (!p) { ... }             \u002F\u002F 等价写法\nif (p) { ... }              \u002F\u002F p 非空\n","cpp","",[19,112,113,140,158,183,190,196,213,230],{"__ignoreMap":110},[114,115,118,122,126,129,133,136],"span",{"class":116,"line":117},"line",1,[114,119,121],{"class":120},"szBVR","int*",[114,123,125],{"class":124},"sVt8B"," p ",[114,127,128],{"class":120},"=",[114,130,132],{"class":131},"sj4cs"," nullptr",[114,134,135],{"class":124},";",[114,137,139],{"class":138},"sJ8bj","           \u002F\u002F 空 int 指针\n",[114,141,143,146,149,151,153,155],{"class":116,"line":142},2,[114,144,145],{"class":120},"double*",[114,147,148],{"class":124}," d ",[114,150,128],{"class":120},[114,152,132],{"class":131},[114,154,135],{"class":124},[114,156,157],{"class":138},"        \u002F\u002F 空 double 指针\n",[114,159,161,165,168,171,174,176,178,180],{"class":116,"line":160},3,[114,162,164],{"class":163},"sScJk","std",[114,166,167],{"class":124},"::shared_ptr",[114,169,170],{"class":120},"\u003Cint>",[114,172,173],{"class":124}," sp ",[114,175,128],{"class":120},[114,177,132],{"class":131},[114,179,135],{"class":124},[114,181,182],{"class":138},"  \u002F\u002F 空智能指针\n",[114,184,186],{"class":116,"line":185},4,[114,187,189],{"emptyLinePlaceholder":188},true,"\n",[114,191,193],{"class":116,"line":192},5,[114,194,195],{"class":138},"\u002F\u002F 判断空指针\n",[114,197,199,202,205,208,210],{"class":116,"line":198},6,[114,200,201],{"class":120},"if",[114,203,204],{"class":124}," (p ",[114,206,207],{"class":120},"==",[114,209,132],{"class":131},[114,211,212],{"class":124},") { ... }\n",[114,214,216,218,221,224,227],{"class":116,"line":215},7,[114,217,201],{"class":120},[114,219,220],{"class":124}," (",[114,222,223],{"class":120},"!",[114,225,226],{"class":124},"p) { ... }",[114,228,229],{"class":138},"             \u002F\u002F 等价写法\n",[114,231,233,235,238],{"class":116,"line":232},8,[114,234,201],{"class":120},[114,236,237],{"class":124}," (p) { ... }",[114,239,240],{"class":138},"              \u002F\u002F p 非空\n",[10,242,244],{"id":243},"common-usage","Common Usage",[246,247,248,262],"table",{},[249,250,251],"thead",{},[252,253,254,259],"tr",{},[255,256,258],"th",{"align":257},"left","Usage",[255,260,261],{"align":257},"Explanation",[263,264,265,276,286,296,306],"tbody",{},[252,266,267,273],{},[268,269,270],"td",{"align":257},[19,271,272],{},"int* p = nullptr;",[268,274,275],{"align":257},"initialize null pointer",[252,277,278,283],{},[268,279,280],{"align":257},[19,281,282],{},"p == nullptr",[268,284,285],{"align":257},"Check if it is nullptr.",[252,287,288,293],{},[268,289,290],{"align":257},[19,291,292],{},"if (ptr)",[268,294,295],{"align":257},"Check if not null",[252,297,298,303],{},[268,299,300],{"align":257},[19,301,302],{},"func(nullptr)",[268,304,305],{"align":257},"Passing a null pointer argument",[252,307,308,313],{},[268,309,310],{"align":257},[19,311,312],{},"return nullptr;",[268,314,315],{"align":257},"Return a null pointer.",[10,317,319],{"id":318},"the-difference-between-nullptr-and-other-null-values","The Difference Between nullptr and Other \"Null\" Values",[15,321,322,324],{},[19,323,5],{}," only represents a \"pointer that points to no object.\" It is not the integer 0, nor an empty string, and certainly not an empty container.",[246,326,327,340],{},[249,328,329],{},[252,330,331,334,337],{},[255,332,333],{"align":257},"The phrase \"表达含义\" translates to \"express meaning\" or \"convey the meaning\".",[255,335,336],{"align":257},"Recommended Writing Style",[255,338,339],{"align":257},"Don't mix",[263,341,342,361,374,392,405],{},[252,343,344,347,352],{},[268,345,346],{"align":257},"null pointer",[268,348,349],{"align":257},[19,350,351],{},"T* p = nullptr;",[268,353,354,355,357,358,360],{"align":257},"Understood. I will keep the placeholders ",[19,356,21],{}," and ",[19,359,25],{}," exactly as they are in the translation.",[252,362,363,366,371],{},[268,364,365],{"align":257},"empty smart pointer",[268,367,368],{"align":257},[19,369,370],{},"std::shared_ptr\u003CT> p = nullptr;",[268,372,373],{"align":257},"Avoid manually using new\u002Fdelete.",[252,375,376,379,387],{},[268,377,378],{"align":257},"empty string",[268,380,381,22,384],{"align":257},[19,382,383],{},"std::string s;",[19,385,386],{},"\"\"",[268,388,389,390,99],{"align":257},"Do not use ",[19,391,5],{},[252,393,394,397,402],{},[268,395,396],{"align":257},"may not return a value",[268,398,399],{"align":257},[19,400,401],{},"std::optional\u003CT>",[268,403,404],{"align":257},"Don't force a 'special value' into it.",[252,406,407,410,415],{},[268,408,409],{"align":257},"Container is empty",[268,411,412],{"align":257},[19,413,414],{},"v.empty()",[268,416,417],{"align":257},"Don't confuse it with checking if a pointer is null.",[10,419,421],{"id":420},"example-code","Example code",[423,424,426],"h3",{"id":425},"example-1-basic-usage-of-nullptr","Example 1: Basic Usage of nullptr",[105,428,430],{"className":107,"code":429,"language":109,"meta":110,"style":110},"#include \u003Ciostream>\n#include \u003Ccstddef>\n\nint main()\n{\n    int* p1 = nullptr;    \u002F\u002F 空指针初始化\n    int* p2 = 0;           \u002F\u002F 旧写法（用 0 赋给指针）\n    int* p3 = NULL;        \u002F\u002F 旧写法（NULL 实际上还是 0）\n\n    \u002F\u002F 三种写法在简单的场景下等价\n    std::cout \u003C\u003C \"p1 = \" \u003C\u003C p1 \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"p2 = \" \u003C\u003C p2 \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"p3 = \" \u003C\u003C p3 \u003C\u003C \"\\n\";\n\n    \u002F\u002F 判断空指针\n    if (p1 == nullptr)\n    {\n        std::cout \u003C\u003C \"p1 is null\\n\";\n    }\n\n    return 0;\n}\n",[19,431,432,441,448,452,463,468,485,502,519,524,530,564,590,616,621,627,643,649,668,674,679,689],{"__ignoreMap":110},[114,433,434,437],{"class":116,"line":117},[114,435,436],{"class":120},"#include",[114,438,440],{"class":439},"sZZnC"," \u003Ciostream>\n",[114,442,443,445],{"class":116,"line":142},[114,444,436],{"class":120},[114,446,447],{"class":439}," \u003Ccstddef>\n",[114,449,450],{"class":116,"line":160},[114,451,189],{"emptyLinePlaceholder":188},[114,453,454,457,460],{"class":116,"line":185},[114,455,456],{"class":120},"int",[114,458,459],{"class":163}," main",[114,461,462],{"class":124},"()\n",[114,464,465],{"class":116,"line":192},[114,466,467],{"class":124},"{\n",[114,469,470,473,476,478,480,482],{"class":116,"line":198},[114,471,472],{"class":120},"    int*",[114,474,475],{"class":124}," p1 ",[114,477,128],{"class":120},[114,479,132],{"class":131},[114,481,135],{"class":124},[114,483,484],{"class":138},"    \u002F\u002F 空指针初始化\n",[114,486,487,489,492,494,497,499],{"class":116,"line":215},[114,488,472],{"class":120},[114,490,491],{"class":124}," p2 ",[114,493,128],{"class":120},[114,495,496],{"class":131}," 0",[114,498,135],{"class":124},[114,500,501],{"class":138},"           \u002F\u002F 旧写法（用 0 赋给指针）\n",[114,503,504,506,509,511,514,516],{"class":116,"line":232},[114,505,472],{"class":120},[114,507,508],{"class":124}," p3 ",[114,510,128],{"class":120},[114,512,513],{"class":131}," NULL",[114,515,135],{"class":124},[114,517,518],{"class":138},"        \u002F\u002F 旧写法（NULL 实际上还是 0）\n",[114,520,522],{"class":116,"line":521},9,[114,523,189],{"emptyLinePlaceholder":188},[114,525,527],{"class":116,"line":526},10,[114,528,529],{"class":138},"    \u002F\u002F 三种写法在简单的场景下等价\n",[114,531,533,536,539,542,545,548,550,552,555,558,561],{"class":116,"line":532},11,[114,534,535],{"class":163},"    std",[114,537,538],{"class":124},"::cout ",[114,540,541],{"class":120},"\u003C\u003C",[114,543,544],{"class":439}," \"p1 = \"",[114,546,547],{"class":120}," \u003C\u003C",[114,549,475],{"class":124},[114,551,541],{"class":120},[114,553,554],{"class":439}," \"",[114,556,557],{"class":131},"\\n",[114,559,560],{"class":439},"\"",[114,562,563],{"class":124},";\n",[114,565,567,569,571,573,576,578,580,582,584,586,588],{"class":116,"line":566},12,[114,568,535],{"class":163},[114,570,538],{"class":124},[114,572,541],{"class":120},[114,574,575],{"class":439}," \"p2 = \"",[114,577,547],{"class":120},[114,579,491],{"class":124},[114,581,541],{"class":120},[114,583,554],{"class":439},[114,585,557],{"class":131},[114,587,560],{"class":439},[114,589,563],{"class":124},[114,591,593,595,597,599,602,604,606,608,610,612,614],{"class":116,"line":592},13,[114,594,535],{"class":163},[114,596,538],{"class":124},[114,598,541],{"class":120},[114,600,601],{"class":439}," \"p3 = \"",[114,603,547],{"class":120},[114,605,508],{"class":124},[114,607,541],{"class":120},[114,609,554],{"class":439},[114,611,557],{"class":131},[114,613,560],{"class":439},[114,615,563],{"class":124},[114,617,619],{"class":116,"line":618},14,[114,620,189],{"emptyLinePlaceholder":188},[114,622,624],{"class":116,"line":623},15,[114,625,626],{"class":138},"    \u002F\u002F 判断空指针\n",[114,628,630,633,636,638,640],{"class":116,"line":629},16,[114,631,632],{"class":120},"    if",[114,634,635],{"class":124}," (p1 ",[114,637,207],{"class":120},[114,639,132],{"class":131},[114,641,642],{"class":124},")\n",[114,644,646],{"class":116,"line":645},17,[114,647,648],{"class":124},"    {\n",[114,650,652,655,657,659,662,664,666],{"class":116,"line":651},18,[114,653,654],{"class":163},"        std",[114,656,538],{"class":124},[114,658,541],{"class":120},[114,660,661],{"class":439}," \"p1 is null",[114,663,557],{"class":131},[114,665,560],{"class":439},[114,667,563],{"class":124},[114,669,671],{"class":116,"line":670},19,[114,672,673],{"class":124},"    }\n",[114,675,677],{"class":116,"line":676},20,[114,678,189],{"emptyLinePlaceholder":188},[114,680,682,685,687],{"class":116,"line":681},21,[114,683,684],{"class":120},"    return",[114,686,496],{"class":131},[114,688,563],{"class":124},[114,690,692],{"class":116,"line":691},22,[114,693,694],{"class":124},"}\n",[15,696,697,700],{},[44,698,699],{},"Results","：",[105,702,707],{"className":703,"code":705,"language":706},[704],"language-text","p1 = 0\np2 = 0\np3 = 0\np1 is null\n","text",[19,708,705],{"__ignoreMap":110},[423,710,712],{"id":711},"example-2-builds-on-example-1-to-show-how-nullptr-resolves-overload-ambiguity","Example 2: Builds on Example 1 to show how nullptr resolves overload ambiguity.",[105,714,716],{"className":107,"code":715,"language":109,"meta":110,"style":110},"#include \u003Ciostream>\n\n\u002F\u002F 两个重载函数\nvoid process(int n)\n{\n    std::cout \u003C\u003C \"process(int): \" \u003C\u003C n \u003C\u003C \"\\n\";\n}\n\nvoid process(int* p)\n{\n    if (p == nullptr)\n    {\n        std::cout \u003C\u003C \"process(int*): nullptr\\n\";\n    }\n    else\n    {\n        std::cout \u003C\u003C \"process(int*): \" \u003C\u003C *p \u003C\u003C \"\\n\";\n    }\n}\n\nint main()\n{\n    process(42);        \u002F\u002F 调用 process(int)\n    process(nullptr);   \u002F\u002F 调用 process(int*)，明确是指针版本\n\n\n    process(0);      \u002F\u002F 调用 process(int)\n    \u002F\u002F process(NULL);   \u002F\u002F ❌ 有歧义！编译器不知道调哪个\n\n    int* p = nullptr;\n    process(p);         \u002F\u002F 调用 process(int*)\n\n    return 0;\n}\n",[19,717,718,724,728,733,752,756,782,786,790,805,809,821,825,842,846,851,855,884,888,892,896,904,908,925,939,944,949,963,972,977,990,1001,1006,1015],{"__ignoreMap":110},[114,719,720,722],{"class":116,"line":117},[114,721,436],{"class":120},[114,723,440],{"class":439},[114,725,726],{"class":116,"line":142},[114,727,189],{"emptyLinePlaceholder":188},[114,729,730],{"class":116,"line":160},[114,731,732],{"class":138},"\u002F\u002F 两个重载函数\n",[114,734,735,738,741,744,746,750],{"class":116,"line":185},[114,736,737],{"class":120},"void",[114,739,740],{"class":163}," process",[114,742,743],{"class":124},"(",[114,745,456],{"class":120},[114,747,749],{"class":748},"s4XuR"," n",[114,751,642],{"class":124},[114,753,754],{"class":116,"line":192},[114,755,467],{"class":124},[114,757,758,760,762,764,767,769,772,774,776,778,780],{"class":116,"line":198},[114,759,535],{"class":163},[114,761,538],{"class":124},[114,763,541],{"class":120},[114,765,766],{"class":439}," \"process(int): \"",[114,768,547],{"class":120},[114,770,771],{"class":124}," n ",[114,773,541],{"class":120},[114,775,554],{"class":439},[114,777,557],{"class":131},[114,779,560],{"class":439},[114,781,563],{"class":124},[114,783,784],{"class":116,"line":215},[114,785,694],{"class":124},[114,787,788],{"class":116,"line":232},[114,789,189],{"emptyLinePlaceholder":188},[114,791,792,794,796,798,800,803],{"class":116,"line":521},[114,793,737],{"class":120},[114,795,740],{"class":163},[114,797,743],{"class":124},[114,799,121],{"class":120},[114,801,802],{"class":748}," p",[114,804,642],{"class":124},[114,806,807],{"class":116,"line":526},[114,808,467],{"class":124},[114,810,811,813,815,817,819],{"class":116,"line":532},[114,812,632],{"class":120},[114,814,204],{"class":124},[114,816,207],{"class":120},[114,818,132],{"class":131},[114,820,642],{"class":124},[114,822,823],{"class":116,"line":566},[114,824,648],{"class":124},[114,826,827,829,831,833,836,838,840],{"class":116,"line":592},[114,828,654],{"class":163},[114,830,538],{"class":124},[114,832,541],{"class":120},[114,834,835],{"class":439}," \"process(int*): nullptr",[114,837,557],{"class":131},[114,839,560],{"class":439},[114,841,563],{"class":124},[114,843,844],{"class":116,"line":618},[114,845,673],{"class":124},[114,847,848],{"class":116,"line":623},[114,849,850],{"class":120},"    else\n",[114,852,853],{"class":116,"line":629},[114,854,648],{"class":124},[114,856,857,859,861,863,866,868,871,874,876,878,880,882],{"class":116,"line":645},[114,858,654],{"class":163},[114,860,538],{"class":124},[114,862,541],{"class":120},[114,864,865],{"class":439}," \"process(int*): \"",[114,867,547],{"class":120},[114,869,870],{"class":120}," *",[114,872,873],{"class":124},"p ",[114,875,541],{"class":120},[114,877,554],{"class":439},[114,879,557],{"class":131},[114,881,560],{"class":439},[114,883,563],{"class":124},[114,885,886],{"class":116,"line":651},[114,887,673],{"class":124},[114,889,890],{"class":116,"line":670},[114,891,694],{"class":124},[114,893,894],{"class":116,"line":676},[114,895,189],{"emptyLinePlaceholder":188},[114,897,898,900,902],{"class":116,"line":681},[114,899,456],{"class":120},[114,901,459],{"class":163},[114,903,462],{"class":124},[114,905,906],{"class":116,"line":691},[114,907,467],{"class":124},[114,909,911,914,916,919,922],{"class":116,"line":910},23,[114,912,913],{"class":163},"    process",[114,915,743],{"class":124},[114,917,918],{"class":131},"42",[114,920,921],{"class":124},");",[114,923,924],{"class":138},"        \u002F\u002F 调用 process(int)\n",[114,926,928,930,932,934,936],{"class":116,"line":927},24,[114,929,913],{"class":163},[114,931,743],{"class":124},[114,933,5],{"class":131},[114,935,921],{"class":124},[114,937,938],{"class":138},"   \u002F\u002F 调用 process(int*)，明确是指针版本\n",[114,940,942],{"class":116,"line":941},25,[114,943,189],{"emptyLinePlaceholder":188},[114,945,947],{"class":116,"line":946},26,[114,948,189],{"emptyLinePlaceholder":188},[114,950,952,954,956,958,960],{"class":116,"line":951},27,[114,953,913],{"class":163},[114,955,743],{"class":124},[114,957,25],{"class":131},[114,959,921],{"class":124},[114,961,962],{"class":138},"      \u002F\u002F 调用 process(int)\n",[114,964,966,969],{"class":116,"line":965},28,[114,967,968],{"class":138},"    \u002F\u002F process(NULL);",[114,970,971],{"class":138},"   \u002F\u002F ❌ 有歧义！编译器不知道调哪个\n",[114,973,975],{"class":116,"line":974},29,[114,976,189],{"emptyLinePlaceholder":188},[114,978,980,982,984,986,988],{"class":116,"line":979},30,[114,981,472],{"class":120},[114,983,125],{"class":124},[114,985,128],{"class":120},[114,987,132],{"class":131},[114,989,563],{"class":124},[114,991,993,995,998],{"class":116,"line":992},31,[114,994,913],{"class":163},[114,996,997],{"class":124},"(p);",[114,999,1000],{"class":138},"         \u002F\u002F 调用 process(int*)\n",[114,1002,1004],{"class":116,"line":1003},32,[114,1005,189],{"emptyLinePlaceholder":188},[114,1007,1009,1011,1013],{"class":116,"line":1008},33,[114,1010,684],{"class":120},[114,1012,496],{"class":131},[114,1014,563],{"class":124},[114,1016,1018],{"class":116,"line":1017},34,[114,1019,694],{"class":124},[15,1021,1022,700],{},[44,1023,699],{},[105,1025,1028],{"className":1026,"code":1027,"language":706},[704],"process(int): 42\nprocess(int*): nullptr\nprocess(int): 0\nprocess(int*): nullptr\n",[19,1029,1027],{"__ignoreMap":110},[423,1031,1033],{"id":1032},"example-3-building-on-example-2-the-application-of-nullptr-in-templates-and-smart-pointers","Example 3: Building on Example 2, the application of nullptr in templates and smart pointers",[105,1035,1037],{"className":107,"code":1036,"language":109,"meta":110,"style":110},"#include \u003Ciostream>\n#include \u003Cmemory>\n\ntemplate \u003Ctypename T>\nvoid check_ptr(T* ptr)\n{\n    if (ptr == nullptr)\n    {\n        std::cout \u003C\u003C \"pointer is null\\n\";\n    }\n    else\n    {\n        std::cout \u003C\u003C \"pointer value = \" \u003C\u003C *ptr \u003C\u003C \"\\n\";\n    }\n}\n\nint main()\n{\n    \u002F\u002F 原始指针初始化为空\n    int* rp = nullptr;\n    check_ptr(rp);\n\n    \u002F\u002F 智能指针初始化为空\n    std::shared_ptr\u003Cint> sp = nullptr;\n    \u002F\u002F 智能指针也可直接用 bool 判断\n    if (!sp)\n    {\n        std::cout \u003C\u003C \"shared_ptr is null\\n\";\n    }\n\n    \u002F\u002F 创建后赋值\n    sp = std::make_shared\u003Cint>(100);\n    if (sp)\n    {\n        std::cout \u003C\u003C \"shared_ptr value = \" \u003C\u003C *sp \u003C\u003C \"\\n\";\n    }\n\n    return 0;\n}\n",[19,1038,1039,1045,1052,1056,1073,1093,1097,1110,1114,1131,1135,1139,1143,1171,1175,1179,1183,1191,1195,1200,1213,1221,1225,1230,1246,1251,1262,1266,1283,1287,1291,1296,1326,1333,1337,1366,1371,1376,1385],{"__ignoreMap":110},[114,1040,1041,1043],{"class":116,"line":117},[114,1042,436],{"class":120},[114,1044,440],{"class":439},[114,1046,1047,1049],{"class":116,"line":142},[114,1048,436],{"class":120},[114,1050,1051],{"class":439}," \u003Cmemory>\n",[114,1053,1054],{"class":116,"line":160},[114,1055,189],{"emptyLinePlaceholder":188},[114,1057,1058,1061,1064,1067,1070],{"class":116,"line":185},[114,1059,1060],{"class":120},"template",[114,1062,1063],{"class":124}," \u003C",[114,1065,1066],{"class":120},"typename",[114,1068,1069],{"class":163}," T",[114,1071,1072],{"class":124},">\n",[114,1074,1075,1077,1080,1082,1085,1088,1091],{"class":116,"line":192},[114,1076,737],{"class":120},[114,1078,1079],{"class":163}," check_ptr",[114,1081,743],{"class":124},[114,1083,1084],{"class":163},"T",[114,1086,1087],{"class":120},"*",[114,1089,1090],{"class":748}," ptr",[114,1092,642],{"class":124},[114,1094,1095],{"class":116,"line":198},[114,1096,467],{"class":124},[114,1098,1099,1101,1104,1106,1108],{"class":116,"line":215},[114,1100,632],{"class":120},[114,1102,1103],{"class":124}," (ptr ",[114,1105,207],{"class":120},[114,1107,132],{"class":131},[114,1109,642],{"class":124},[114,1111,1112],{"class":116,"line":232},[114,1113,648],{"class":124},[114,1115,1116,1118,1120,1122,1125,1127,1129],{"class":116,"line":521},[114,1117,654],{"class":163},[114,1119,538],{"class":124},[114,1121,541],{"class":120},[114,1123,1124],{"class":439}," \"pointer is null",[114,1126,557],{"class":131},[114,1128,560],{"class":439},[114,1130,563],{"class":124},[114,1132,1133],{"class":116,"line":526},[114,1134,673],{"class":124},[114,1136,1137],{"class":116,"line":532},[114,1138,850],{"class":120},[114,1140,1141],{"class":116,"line":566},[114,1142,648],{"class":124},[114,1144,1145,1147,1149,1151,1154,1156,1158,1161,1163,1165,1167,1169],{"class":116,"line":592},[114,1146,654],{"class":163},[114,1148,538],{"class":124},[114,1150,541],{"class":120},[114,1152,1153],{"class":439}," \"pointer value = \"",[114,1155,547],{"class":120},[114,1157,870],{"class":120},[114,1159,1160],{"class":124},"ptr ",[114,1162,541],{"class":120},[114,1164,554],{"class":439},[114,1166,557],{"class":131},[114,1168,560],{"class":439},[114,1170,563],{"class":124},[114,1172,1173],{"class":116,"line":618},[114,1174,673],{"class":124},[114,1176,1177],{"class":116,"line":623},[114,1178,694],{"class":124},[114,1180,1181],{"class":116,"line":629},[114,1182,189],{"emptyLinePlaceholder":188},[114,1184,1185,1187,1189],{"class":116,"line":645},[114,1186,456],{"class":120},[114,1188,459],{"class":163},[114,1190,462],{"class":124},[114,1192,1193],{"class":116,"line":651},[114,1194,467],{"class":124},[114,1196,1197],{"class":116,"line":670},[114,1198,1199],{"class":138},"    \u002F\u002F 原始指针初始化为空\n",[114,1201,1202,1204,1207,1209,1211],{"class":116,"line":676},[114,1203,472],{"class":120},[114,1205,1206],{"class":124}," rp ",[114,1208,128],{"class":120},[114,1210,132],{"class":131},[114,1212,563],{"class":124},[114,1214,1215,1218],{"class":116,"line":681},[114,1216,1217],{"class":163},"    check_ptr",[114,1219,1220],{"class":124},"(rp);\n",[114,1222,1223],{"class":116,"line":691},[114,1224,189],{"emptyLinePlaceholder":188},[114,1226,1227],{"class":116,"line":910},[114,1228,1229],{"class":138},"    \u002F\u002F 智能指针初始化为空\n",[114,1231,1232,1234,1236,1238,1240,1242,1244],{"class":116,"line":927},[114,1233,535],{"class":163},[114,1235,167],{"class":124},[114,1237,170],{"class":120},[114,1239,173],{"class":124},[114,1241,128],{"class":120},[114,1243,132],{"class":131},[114,1245,563],{"class":124},[114,1247,1248],{"class":116,"line":941},[114,1249,1250],{"class":138},"    \u002F\u002F 智能指针也可直接用 bool 判断\n",[114,1252,1253,1255,1257,1259],{"class":116,"line":946},[114,1254,632],{"class":120},[114,1256,220],{"class":124},[114,1258,223],{"class":120},[114,1260,1261],{"class":124},"sp)\n",[114,1263,1264],{"class":116,"line":951},[114,1265,648],{"class":124},[114,1267,1268,1270,1272,1274,1277,1279,1281],{"class":116,"line":965},[114,1269,654],{"class":163},[114,1271,538],{"class":124},[114,1273,541],{"class":120},[114,1275,1276],{"class":439}," \"shared_ptr is null",[114,1278,557],{"class":131},[114,1280,560],{"class":439},[114,1282,563],{"class":124},[114,1284,1285],{"class":116,"line":974},[114,1286,673],{"class":124},[114,1288,1289],{"class":116,"line":979},[114,1290,189],{"emptyLinePlaceholder":188},[114,1292,1293],{"class":116,"line":992},[114,1294,1295],{"class":138},"    \u002F\u002F 创建后赋值\n",[114,1297,1298,1301,1303,1306,1309,1312,1315,1317,1320,1323],{"class":116,"line":1003},[114,1299,1300],{"class":124},"    sp ",[114,1302,128],{"class":120},[114,1304,1305],{"class":163}," std",[114,1307,1308],{"class":124},"::",[114,1310,1311],{"class":163},"make_shared",[114,1313,1314],{"class":124},"\u003C",[114,1316,456],{"class":120},[114,1318,1319],{"class":124},">(",[114,1321,1322],{"class":131},"100",[114,1324,1325],{"class":124},");\n",[114,1327,1328,1330],{"class":116,"line":1008},[114,1329,632],{"class":120},[114,1331,1332],{"class":124}," (sp)\n",[114,1334,1335],{"class":116,"line":1017},[114,1336,648],{"class":124},[114,1338,1340,1342,1344,1346,1349,1351,1353,1356,1358,1360,1362,1364],{"class":116,"line":1339},35,[114,1341,654],{"class":163},[114,1343,538],{"class":124},[114,1345,541],{"class":120},[114,1347,1348],{"class":439}," \"shared_ptr value = \"",[114,1350,547],{"class":120},[114,1352,870],{"class":120},[114,1354,1355],{"class":124},"sp ",[114,1357,541],{"class":120},[114,1359,554],{"class":439},[114,1361,557],{"class":131},[114,1363,560],{"class":439},[114,1365,563],{"class":124},[114,1367,1369],{"class":116,"line":1368},36,[114,1370,673],{"class":124},[114,1372,1374],{"class":116,"line":1373},37,[114,1375,189],{"emptyLinePlaceholder":188},[114,1377,1379,1381,1383],{"class":116,"line":1378},38,[114,1380,684],{"class":120},[114,1382,496],{"class":131},[114,1384,563],{"class":124},[114,1386,1388],{"class":116,"line":1387},39,[114,1389,694],{"class":124},[15,1391,1392,700],{},[44,1393,699],{},[105,1395,1398],{"className":1396,"code":1397,"language":706},[704],"pointer is null\nshared_ptr is null\nshared_ptr value = 100\n",[19,1399,1397],{"__ignoreMap":110},[423,1401,1403],{"id":1402},"example-4-nullptr-is-not-magicmultiple-pointer-overloads-still-require-specifying-the-type","Example 4: nullptr is not magic—multiple pointer overloads still require specifying the type",[105,1405,1407],{"className":107,"code":1406,"language":109,"meta":110,"style":110},"#include \u003Ciostream>\n\nvoid reset(int* p)\n{\n    std::cout \u003C\u003C \"reset int pointer\\n\";\n    if (p != nullptr)\n    {\n        *p = 0;\n    }\n}\n\nvoid reset(double* p)\n{\n    std::cout \u003C\u003C \"reset double pointer\\n\";\n    if (p != nullptr)\n    {\n        *p = 0.0;\n    }\n}\n\nint main()\n{\n    int count = 42;\n    double ratio = 3.14;\n\n    reset(&count);   \u002F\u002F 明确调用 int* 版本\n    reset(&ratio);   \u002F\u002F 明确调用 double* 版本\n\n    int* count_ptr = nullptr;\n    reset(count_ptr); \u002F\u002F 仍然明确是 int* 版本\n\n    \u002F\u002F reset(nullptr); \u002F\u002F ❌ 编译错误：nullptr 可以转成 int*，也可以转成 double*\n\n    std::cout \u003C\u003C \"count = \" \u003C\u003C count \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C \"ratio = \" \u003C\u003C ratio \u003C\u003C \"\\n\";\n\n    return 0;\n}\n",[19,1408,1409,1415,1419,1434,1438,1455,1468,1472,1485,1489,1493,1497,1511,1515,1532,1544,1548,1561,1565,1569,1573,1581,1585,1600,1615,1619,1635,1649,1653,1666,1676,1680,1688,1692,1717,1742,1746,1754],{"__ignoreMap":110},[114,1410,1411,1413],{"class":116,"line":117},[114,1412,436],{"class":120},[114,1414,440],{"class":439},[114,1416,1417],{"class":116,"line":142},[114,1418,189],{"emptyLinePlaceholder":188},[114,1420,1421,1423,1426,1428,1430,1432],{"class":116,"line":160},[114,1422,737],{"class":120},[114,1424,1425],{"class":163}," reset",[114,1427,743],{"class":124},[114,1429,121],{"class":120},[114,1431,802],{"class":748},[114,1433,642],{"class":124},[114,1435,1436],{"class":116,"line":185},[114,1437,467],{"class":124},[114,1439,1440,1442,1444,1446,1449,1451,1453],{"class":116,"line":192},[114,1441,535],{"class":163},[114,1443,538],{"class":124},[114,1445,541],{"class":120},[114,1447,1448],{"class":439}," \"reset int pointer",[114,1450,557],{"class":131},[114,1452,560],{"class":439},[114,1454,563],{"class":124},[114,1456,1457,1459,1461,1464,1466],{"class":116,"line":198},[114,1458,632],{"class":120},[114,1460,204],{"class":124},[114,1462,1463],{"class":120},"!=",[114,1465,132],{"class":131},[114,1467,642],{"class":124},[114,1469,1470],{"class":116,"line":215},[114,1471,648],{"class":124},[114,1473,1474,1477,1479,1481,1483],{"class":116,"line":232},[114,1475,1476],{"class":120},"        *",[114,1478,873],{"class":124},[114,1480,128],{"class":120},[114,1482,496],{"class":131},[114,1484,563],{"class":124},[114,1486,1487],{"class":116,"line":521},[114,1488,673],{"class":124},[114,1490,1491],{"class":116,"line":526},[114,1492,694],{"class":124},[114,1494,1495],{"class":116,"line":532},[114,1496,189],{"emptyLinePlaceholder":188},[114,1498,1499,1501,1503,1505,1507,1509],{"class":116,"line":566},[114,1500,737],{"class":120},[114,1502,1425],{"class":163},[114,1504,743],{"class":124},[114,1506,145],{"class":120},[114,1508,802],{"class":748},[114,1510,642],{"class":124},[114,1512,1513],{"class":116,"line":592},[114,1514,467],{"class":124},[114,1516,1517,1519,1521,1523,1526,1528,1530],{"class":116,"line":618},[114,1518,535],{"class":163},[114,1520,538],{"class":124},[114,1522,541],{"class":120},[114,1524,1525],{"class":439}," \"reset double pointer",[114,1527,557],{"class":131},[114,1529,560],{"class":439},[114,1531,563],{"class":124},[114,1533,1534,1536,1538,1540,1542],{"class":116,"line":623},[114,1535,632],{"class":120},[114,1537,204],{"class":124},[114,1539,1463],{"class":120},[114,1541,132],{"class":131},[114,1543,642],{"class":124},[114,1545,1546],{"class":116,"line":629},[114,1547,648],{"class":124},[114,1549,1550,1552,1554,1556,1559],{"class":116,"line":645},[114,1551,1476],{"class":120},[114,1553,873],{"class":124},[114,1555,128],{"class":120},[114,1557,1558],{"class":131}," 0.0",[114,1560,563],{"class":124},[114,1562,1563],{"class":116,"line":651},[114,1564,673],{"class":124},[114,1566,1567],{"class":116,"line":670},[114,1568,694],{"class":124},[114,1570,1571],{"class":116,"line":676},[114,1572,189],{"emptyLinePlaceholder":188},[114,1574,1575,1577,1579],{"class":116,"line":681},[114,1576,456],{"class":120},[114,1578,459],{"class":163},[114,1580,462],{"class":124},[114,1582,1583],{"class":116,"line":691},[114,1584,467],{"class":124},[114,1586,1587,1590,1593,1595,1598],{"class":116,"line":910},[114,1588,1589],{"class":120},"    int",[114,1591,1592],{"class":124}," count ",[114,1594,128],{"class":120},[114,1596,1597],{"class":131}," 42",[114,1599,563],{"class":124},[114,1601,1602,1605,1608,1610,1613],{"class":116,"line":927},[114,1603,1604],{"class":120},"    double",[114,1606,1607],{"class":124}," ratio ",[114,1609,128],{"class":120},[114,1611,1612],{"class":131}," 3.14",[114,1614,563],{"class":124},[114,1616,1617],{"class":116,"line":941},[114,1618,189],{"emptyLinePlaceholder":188},[114,1620,1621,1624,1626,1629,1632],{"class":116,"line":946},[114,1622,1623],{"class":163},"    reset",[114,1625,743],{"class":124},[114,1627,1628],{"class":120},"&",[114,1630,1631],{"class":124},"count);",[114,1633,1634],{"class":138},"   \u002F\u002F 明确调用 int* 版本\n",[114,1636,1637,1639,1641,1643,1646],{"class":116,"line":951},[114,1638,1623],{"class":163},[114,1640,743],{"class":124},[114,1642,1628],{"class":120},[114,1644,1645],{"class":124},"ratio);",[114,1647,1648],{"class":138},"   \u002F\u002F 明确调用 double* 版本\n",[114,1650,1651],{"class":116,"line":965},[114,1652,189],{"emptyLinePlaceholder":188},[114,1654,1655,1657,1660,1662,1664],{"class":116,"line":974},[114,1656,472],{"class":120},[114,1658,1659],{"class":124}," count_ptr ",[114,1661,128],{"class":120},[114,1663,132],{"class":131},[114,1665,563],{"class":124},[114,1667,1668,1670,1673],{"class":116,"line":979},[114,1669,1623],{"class":163},[114,1671,1672],{"class":124},"(count_ptr);",[114,1674,1675],{"class":138}," \u002F\u002F 仍然明确是 int* 版本\n",[114,1677,1678],{"class":116,"line":992},[114,1679,189],{"emptyLinePlaceholder":188},[114,1681,1682,1685],{"class":116,"line":1003},[114,1683,1684],{"class":138},"    \u002F\u002F reset(nullptr);",[114,1686,1687],{"class":138}," \u002F\u002F ❌ 编译错误：nullptr 可以转成 int*，也可以转成 double*\n",[114,1689,1690],{"class":116,"line":1008},[114,1691,189],{"emptyLinePlaceholder":188},[114,1693,1694,1696,1698,1700,1703,1705,1707,1709,1711,1713,1715],{"class":116,"line":1017},[114,1695,535],{"class":163},[114,1697,538],{"class":124},[114,1699,541],{"class":120},[114,1701,1702],{"class":439}," \"count = \"",[114,1704,547],{"class":120},[114,1706,1592],{"class":124},[114,1708,541],{"class":120},[114,1710,554],{"class":439},[114,1712,557],{"class":131},[114,1714,560],{"class":439},[114,1716,563],{"class":124},[114,1718,1719,1721,1723,1725,1728,1730,1732,1734,1736,1738,1740],{"class":116,"line":1339},[114,1720,535],{"class":163},[114,1722,538],{"class":124},[114,1724,541],{"class":120},[114,1726,1727],{"class":439}," \"ratio = \"",[114,1729,547],{"class":120},[114,1731,1607],{"class":124},[114,1733,541],{"class":120},[114,1735,554],{"class":439},[114,1737,557],{"class":131},[114,1739,560],{"class":439},[114,1741,563],{"class":124},[114,1743,1744],{"class":116,"line":1368},[114,1745,189],{"emptyLinePlaceholder":188},[114,1747,1748,1750,1752],{"class":116,"line":1373},[114,1749,684],{"class":120},[114,1751,496],{"class":131},[114,1753,563],{"class":124},[114,1755,1756],{"class":116,"line":1378},[114,1757,694],{"class":124},[15,1759,1760,700],{},[44,1761,699],{},[105,1763,1766],{"className":1764,"code":1765,"language":706},[704],"reset int pointer\nreset double pointer\nreset int pointer\ncount = 0\nratio = 0\n",[19,1767,1765],{"__ignoreMap":110},[10,1769,1771],{"id":1770},"runtime-results","runtime results",[15,1773,1774],{},"See the \"running results\" for each example above.",[10,1776,1778],{"id":1777},"key-syntax-explanation-in-the-example","Key syntax explanation in the example",[15,1780,1781],{},"|Here is the translation of the provided Simplified Chinese Markdown fragment into natural American English, following all specified rules.",[1783,1784],"hr",{},[246,1786,1787,1808],{},[249,1788,1789],{},[252,1790,1791,1796,1799,1802,1805],{},[255,1792,1793],{"align":257},[44,1794,1795],{},"Example",[255,1797,1798],{"align":257},"Discusses what",[255,1800,1801],{"align":257},"Newly emerged syntax",[255,1803,1804],{"align":257},"Why write it this way",[255,1806,1807],{"align":257},"Precautions",[263,1809,1810,1833,1850,1875],{},[252,1811,1812,1815,1818,1825,1828],{},[268,1813,1814],{"align":257},"Example 1",[268,1816,1817],{"align":257},"Basic usage of nullptr",[268,1819,1820,1822,1823],{"align":257},[19,1821,5],{},"、",[19,1824,282],{},[268,1826,1827],{"align":257},"Initialize the pointer to \"NULL\", type-safe",[268,1829,1830,1831],{"align":257},"The type of nullptr is ",[19,1832,70],{},[252,1834,1835,1838,1841,1844,1847],{},[268,1836,1837],{"align":257},"Example 2",[268,1839,1840],{"align":257},"Resolve overload ambiguity",[268,1842,1843],{"align":257},"How nullptr matches the pointer version in overloaded functions",[268,1845,1846],{"align":257},"NULL cannot distinguish between integer and pointer overloading, but nullptr can.",[268,1848,1849],{"align":257},"This is why nullptr is used instead of NULL.",[252,1851,1852,1855,1858,1866,1869],{},[268,1853,1854],{"align":257},"Example 3",[268,1856,1857],{"align":257},"Templates and Smart Pointers",[268,1859,1860,1822,1863],{"align":257},[19,1861,1862],{},"shared_ptr = nullptr",[19,1864,1865],{},"if(sp)",[268,1867,1868],{"align":257},"Smart pointers can also be initialized with nullptr.",[268,1870,1871,1872],{"align":257},"The bool conversion of smart pointers is equivalent to ",[19,1873,1874],{},"!= nullptr",[252,1876,1877,1880,1883,1891,1894],{},[268,1878,1879],{"align":257},"Example 4",[268,1881,1882],{"align":257},"Multiple pointer overloading",[268,1884,1885,1822,1887,1822,1889],{"align":257},[19,1886,121],{},[19,1888,145],{},[19,1890,5],{},[268,1892,1893],{"align":257},"nullptr can exclude integer overloads, but it cannot choose the specific pointer type for you.",[268,1895,1896],{"align":257},"When dealing with multiple pointer overloads, first place nullptr into a pointer variable of a clear type.",[10,1898,1900],{"id":1899},"common-errors","Common Errors",[15,1902,1903],{},[44,1904,1905],{},"Error 1: Assuming nullptr can match any pointer overload",[105,1907,1909],{"className":107,"code":1908,"language":109,"meta":110,"style":110},"void f(int*);\nvoid f(double*);\n\nf(nullptr);  \u002F\u002F ❌ 编译错误：两个指针版本都能匹配\n",[19,1910,1911,1924,1936,1940],{"__ignoreMap":110},[114,1912,1913,1915,1918,1920,1922],{"class":116,"line":117},[114,1914,737],{"class":120},[114,1916,1917],{"class":163}," f",[114,1919,743],{"class":124},[114,1921,121],{"class":120},[114,1923,1325],{"class":124},[114,1925,1926,1928,1930,1932,1934],{"class":116,"line":142},[114,1927,737],{"class":120},[114,1929,1917],{"class":163},[114,1931,743],{"class":124},[114,1933,145],{"class":120},[114,1935,1325],{"class":124},[114,1937,1938],{"class":116,"line":160},[114,1939,189],{"emptyLinePlaceholder":188},[114,1941,1942,1945,1947,1949,1951],{"class":116,"line":185},[114,1943,1944],{"class":163},"f",[114,1946,743],{"class":124},[114,1948,5],{"class":131},[114,1950,921],{"class":124},[114,1952,1953],{"class":138},"  \u002F\u002F ❌ 编译错误：两个指针版本都能匹配\n",[15,1955,1956,1957],{},"Correct approach: first clarify the type: ",[19,1958,1959],{},"int* p = nullptr; f(p);",[15,1961,1962],{},[44,1963,1964,1965,1967],{},"Error 2: Assigning ",[19,1966,5],{}," to an integer",[105,1969,1971],{"className":107,"code":1970,"language":109,"meta":110,"style":110},"int n = nullptr;  \u002F\u002F ❌ 编译错误！nullptr 不能隐式转换为整数\n",[19,1972,1973],{"__ignoreMap":110},[114,1974,1975,1977,1979,1981,1983,1985],{"class":116,"line":117},[114,1976,456],{"class":120},[114,1978,771],{"class":124},[114,1980,128],{"class":120},[114,1982,132],{"class":131},[114,1984,135],{"class":124},[114,1986,1987],{"class":138},"  \u002F\u002F ❌ 编译错误！nullptr 不能隐式转换为整数\n",[15,1989,1990,1993],{},[44,1991,1992],{},"Correct Practice:"," Use 0 for integers, and use nullptr for pointers.",[15,1995,1996],{},[44,1997,1998,1999,2001],{},"Error 3: Using ",[19,2000,21],{}," for pointer validation",[105,2003,2005],{"className":107,"code":2004,"language":109,"meta":110,"style":110},"if (p == NULL) { ... }  \u002F\u002F 能工作，但不是最佳实践\n",[19,2006,2007],{"__ignoreMap":110},[114,2008,2009,2011,2013,2015,2017,2020],{"class":116,"line":117},[114,2010,201],{"class":120},[114,2012,204],{"class":124},[114,2014,207],{"class":120},[114,2016,513],{"class":131},[114,2018,2019],{"class":124},") { ... }",[114,2021,2022],{"class":138},"  \u002F\u002F 能工作，但不是最佳实践\n",[15,2024,2025,2026,2029,2030,99],{},"Correct approach: use ",[19,2027,2028],{},"if (p == nullptr)"," or directly ",[19,2031,2032],{},"if (!p)",[15,2034,2035],{},[44,2036,2037],{},"Error 4: Using nullptr as a boolean in unintended places",[105,2039,2041],{"className":107,"code":2040,"language":109,"meta":110,"style":110},"std::string s = nullptr;  \u002F\u002F ❌ C++23 起直接禁止；旧标准中也是未定义行为\n",[19,2042,2043],{"__ignoreMap":110},[114,2044,2045,2047,2050,2052,2054,2056],{"class":116,"line":117},[114,2046,164],{"class":163},[114,2048,2049],{"class":124},"::string s ",[114,2051,128],{"class":120},[114,2053,132],{"class":131},[114,2055,135],{"class":124},[114,2057,2058],{"class":138},"  \u002F\u002F ❌ C++23 起直接禁止；旧标准中也是未定义行为\n",[15,2060,2061,2062,22,2064,99],{},"Correct practice: Empty strings should be represented using ",[19,2063,383],{},[19,2065,2066],{},"std::string s = \"\";",[10,2068,2069],{"id":2069},"使用建议",[28,2071,2072,2075,2078,2081,2084],{},[31,2073,2074],{},"明确目标：在开始前确定您的具体需求，以便选择最合适的工具或教程。",[31,2076,2077],{},"充分利用资源：参考官方文档、教程和博客，这些资料能帮助您快速上手并解决问题。",[31,2079,2080],{},"实践应用：通过动手操作项目或编写代码来巩固学习成果，提升实际操作能力。",[31,2082,2083],{},"问题解决：遇到困难时，查阅参考资料或寻求社区支持，逐步培养独立解决问题的能力。",[31,2085,2086],{},"分享经验：完成项目后，可以撰写文章或博客分享心得，帮助其他学习者。",[15,2088,2089],{},"如果需要针对特定领域（如单片机、机器人或环境搭建）的进一步建议，请提供更多信息，我将为您细化内容。",[2091,2092,2093,2106,2116,2128],"ol",{},[31,2094,2095,2105],{},[44,2096,2097,2098,2100,2101,22,2103],{},"Always use ",[19,2099,5],{}," instead of ",[19,2102,21],{},[19,2104,25],{},": this is a modern C++ idiom to avoid type ambiguity.",[31,2107,2108,2113,2114,99],{},[44,2109,2110,2111],{},"Smart pointers are also available via ",[19,2112,5],{},": such as ",[19,2115,370],{},[31,2117,2118,2123,2124,2127],{},[44,2119,2120,2121],{},"Checking for non-empty with ",[19,2122,292],{},": Equivalent to ",[19,2125,2126],{},"if (ptr != nullptr)",", more concise.",[31,2129,2130,2136,2137,99],{},[44,2131,2132,2133,2135],{},"Do not assign ",[19,2134,5],{}," to non-pointer types",": Integers, strings, and similar types should not be initialized with ",[19,2138,5],{},[10,2140,2142],{"id":2141},"summary","Summary",[28,2144,2145,2154,2163,2172],{},[31,2146,2147,2149,2150,357,2152,99],{},[19,2148,5],{}," is a type-safe null pointer constant, replacing ",[19,2151,21],{},[19,2153,25],{},[31,2155,2156,2157,2159,2160,2162],{},"The type of ",[19,2158,5],{}," is ",[19,2161,70],{},", and it can only be implicitly converted to a pointer type.",[31,2164,2165,2166,2168,2169,2171],{},"In overloaded functions, ",[19,2167,5],{}," correctly matches the pointer version, while ",[19,2170,21],{}," does not.",[31,2173,2097,2174,2176],{},[19,2175,5],{}," in modern C++.",[2178,2179,2180],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":110,"searchDepth":142,"depth":142,"links":2182},[2183,2184,2185,2186,2187,2188,2189,2190,2196,2197,2198,2199,2200],{"id":12,"depth":142,"text":13},{"id":61,"depth":142,"text":62},{"id":78,"depth":142,"text":79},{"id":85,"depth":142,"text":86},{"id":102,"depth":142,"text":103},{"id":243,"depth":142,"text":244},{"id":318,"depth":142,"text":319},{"id":420,"depth":142,"text":421,"children":2191},[2192,2193,2194,2195],{"id":425,"depth":160,"text":426},{"id":711,"depth":160,"text":712},{"id":1032,"depth":160,"text":1033},{"id":1402,"depth":160,"text":1403},{"id":1770,"depth":142,"text":1771},{"id":1777,"depth":142,"text":1778},{"id":1899,"depth":142,"text":1900},{"id":2069,"depth":142,"text":2069},{"id":2141,"depth":142,"text":2142},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","2000-0200","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-0200-nullptr",false,null,"en-US","en-us",{},{"title":5,"description":110},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","JTfWhp_HgHgEFZqHQA-K8vIkzSHunYrB6Y-qVdherk4",[2220,2226,2231,2236,2241,2246,2251,2256,2261,2266,2271,2276,2281,2286,2291,2296,2301,2306,2311,2316,2321,2326,2331,2335,2340,2345,2350,2355,2360,2365,2370,2375,2380,2385,2390,2395,2400,2405,2410,2411,2416,2421,2426,2431,2436,2441,2446,2451,2456,2461,2466,2471,2476,2481,2486,2491,2496,2501,2506,2511,2516,2521,2526,2531,2536,2541,2546,2551,2556,2561,2566,2571,2576,2581,2586,2591,2596,2601,2606,2611,2616,2621],{"path":2221,"stem":2222,"title":2223,"date":2203,"chapterOrder":2224,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2227,"stem":2228,"title":2229,"date":2203,"chapterOrder":2230,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2232,"stem":2233,"title":2234,"date":2203,"chapterOrder":2235,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2237,"stem":2238,"title":2239,"date":2203,"chapterOrder":2240,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2242,"stem":2243,"title":2244,"date":2203,"chapterOrder":2245,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2247,"stem":2248,"title":2249,"date":2203,"chapterOrder":2250,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2252,"stem":2253,"title":2254,"date":2203,"chapterOrder":2255,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","array","0700",{"path":2257,"stem":2258,"title":2259,"date":2203,"chapterOrder":2260,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2262,"stem":2263,"title":2264,"date":2203,"chapterOrder":2265,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","pointer","0900",{"path":2267,"stem":2268,"title":2269,"date":2203,"chapterOrder":2270,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2272,"stem":2273,"title":2274,"date":2203,"chapterOrder":2275,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2277,"stem":2278,"title":2279,"date":2203,"chapterOrder":2280,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","reference","1200",{"path":2282,"stem":2283,"title":2284,"date":2203,"chapterOrder":2285,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2287,"stem":2288,"title":2289,"date":2203,"chapterOrder":2290,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2292,"stem":2293,"title":2294,"date":2203,"chapterOrder":2295,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2297,"stem":2298,"title":2299,"date":2203,"chapterOrder":2300,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2302,"stem":2303,"title":2304,"date":2203,"chapterOrder":2305,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2307,"stem":2308,"title":2309,"date":2203,"chapterOrder":2310,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2312,"stem":2313,"title":2314,"date":2203,"chapterOrder":2315,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2317,"stem":2318,"title":2319,"date":2203,"chapterOrder":2320,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2322,"stem":2323,"title":2324,"date":2203,"chapterOrder":2325,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2327,"stem":2328,"title":2329,"date":2203,"chapterOrder":2330,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2332,"stem":2333,"title":1060,"date":2203,"chapterOrder":2334,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","1700",{"path":2336,"stem":2337,"title":2338,"date":2203,"chapterOrder":2339,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2341,"stem":2342,"title":2343,"date":2203,"chapterOrder":2344,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2346,"stem":2347,"title":2348,"date":2203,"chapterOrder":2349,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2351,"stem":2352,"title":2353,"date":2203,"chapterOrder":2354,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2356,"stem":2357,"title":2358,"date":2203,"chapterOrder":2359,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2361,"stem":2362,"title":2363,"date":2203,"chapterOrder":2364,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2366,"stem":2367,"title":2368,"date":2203,"chapterOrder":2369,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2371,"stem":2372,"title":2373,"date":2203,"chapterOrder":2374,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2376,"stem":2377,"title":2378,"date":2203,"chapterOrder":2379,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2381,"stem":2382,"title":2383,"date":2203,"chapterOrder":2384,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2386,"stem":2387,"title":2388,"date":2203,"chapterOrder":2389,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2391,"stem":2392,"title":2393,"date":2203,"chapterOrder":2394,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2396,"stem":2397,"title":2398,"date":2203,"chapterOrder":2399,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2401,"stem":2402,"title":2403,"date":2203,"chapterOrder":2404,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2406,"stem":2407,"title":2408,"date":2203,"chapterOrder":2409,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":2201,"stem":2217,"title":5,"date":2203,"chapterOrder":2202,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},{"path":2412,"stem":2413,"title":2414,"date":2203,"chapterOrder":2415,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2417,"stem":2418,"title":2419,"date":2203,"chapterOrder":2420,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2422,"stem":2423,"title":2424,"date":2203,"chapterOrder":2425,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2427,"stem":2428,"title":2429,"date":2203,"chapterOrder":2430,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2432,"stem":2433,"title":2434,"date":2203,"chapterOrder":2435,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2437,"stem":2438,"title":2439,"date":2203,"chapterOrder":2440,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2442,"stem":2443,"title":2444,"date":2203,"chapterOrder":2445,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2447,"stem":2448,"title":2449,"date":2203,"chapterOrder":2450,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2452,"stem":2453,"title":2454,"date":2203,"chapterOrder":2455,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2457,"stem":2458,"title":2459,"date":2203,"chapterOrder":2460,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2462,"stem":2463,"title":2464,"date":2203,"chapterOrder":2465,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2467,"stem":2468,"title":2469,"date":2203,"chapterOrder":2470,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2472,"stem":2473,"title":2474,"date":2203,"chapterOrder":2475,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2477,"stem":2478,"title":2479,"date":2203,"chapterOrder":2480,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2482,"stem":2483,"title":2484,"date":2203,"chapterOrder":2485,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2487,"stem":2488,"title":2489,"date":2203,"chapterOrder":2490,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2492,"stem":2493,"title":2494,"date":2203,"chapterOrder":2495,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2497,"stem":2498,"title":2499,"date":2203,"chapterOrder":2500,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2502,"stem":2503,"title":2504,"date":2203,"chapterOrder":2505,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2507,"stem":2508,"title":2509,"date":2203,"chapterOrder":2510,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2512,"stem":2513,"title":2514,"date":2203,"chapterOrder":2515,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2517,"stem":2518,"title":2519,"date":2203,"chapterOrder":2520,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":2522,"stem":2523,"title":2524,"date":2203,"chapterOrder":2525,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2527,"stem":2528,"title":2529,"date":2203,"chapterOrder":2530,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2532,"stem":2533,"title":2534,"date":2203,"chapterOrder":2535,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2537,"stem":2538,"title":2539,"date":2203,"chapterOrder":2540,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2542,"stem":2543,"title":2544,"date":2203,"chapterOrder":2545,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2547,"stem":2548,"title":2549,"date":2203,"chapterOrder":2550,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2552,"stem":2553,"title":2554,"date":2203,"chapterOrder":2555,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2557,"stem":2558,"title":2559,"date":2203,"chapterOrder":2560,"chapterDepth":142,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2562,"stem":2563,"title":2564,"date":2203,"chapterOrder":2565,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2567,"stem":2568,"title":2569,"date":2203,"chapterOrder":2570,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2572,"stem":2573,"title":2574,"date":2203,"chapterOrder":2575,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2577,"stem":2578,"title":2579,"date":2203,"chapterOrder":2580,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2582,"stem":2583,"title":2584,"date":2203,"chapterOrder":2585,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2587,"stem":2588,"title":2589,"date":2203,"chapterOrder":2590,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2592,"stem":2593,"title":2594,"date":2203,"chapterOrder":2595,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2597,"stem":2598,"title":2599,"date":2203,"chapterOrder":2600,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2602,"stem":2603,"title":2604,"date":2203,"chapterOrder":2605,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2607,"stem":2608,"title":2609,"date":2203,"chapterOrder":2610,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2612,"stem":2613,"title":2614,"date":2203,"chapterOrder":2615,"chapterDepth":117,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2617,"stem":2618,"title":2619,"date":2203,"chapterOrder":2620,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":2210},"\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":2206,"stem":2622,"title":2623,"date":2203,"chapterOrder":2211,"chapterDepth":2225,"docKey":2205,"docRoot":2206,"docTitle":2207,"isWikiDoc":188,"isWikiIndex":188},"_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++ tutorial",{"variants":2625},[2626,2627,2630,2633,2636],{"path":2201,"localeSlug":2213,"i18nKey":2209},{"path":2628,"localeSlug":2629,"i18nKey":2209},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","zh-hant",{"path":2631,"localeSlug":2632,"i18nKey":2209},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","zh-hk",{"path":2634,"localeSlug":2635,"i18nKey":2209},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","zh-tw",{"path":2637,"localeSlug":2638,"i18nKey":2209},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","zh-cn",[2201,2216,2628,2216,2631,2216,2634,2216,2637,2216],1784646866914]