[{"data":1,"prerenderedAt":1014},["ShallowReactive",2],{"page-\u002Fcpp":3,"pieces-cpp":985,"autour-\u002Fcpp":999,"prerequis-\u002Fcpp":1002,"plan-cpp":1003},{"id":4,"title":5,"body":6,"description":959,"extension":960,"ligne":91,"meta":961,"motsCles":962,"navigation":113,"niveau":972,"path":973,"prerequis":974,"ressources":974,"seo":975,"sources":976,"stem":983,"__hash__":984},"docs\u002Fcpp\u002Findex.md","C++",{"type":7,"value":8,"toc":950},"minimark",[9,13,18,73,82,86,240,244,248,399,405,409,488,494,498,578,583,587,727,734,738,876,940,946],[10,11,12],"p",{},"Ce mémo résume les bases de C++ moderne. Chaque section renvoie au cours qui l'explique en détail.",[14,15,17],"h2",{"id":16},"compiler-et-lancer","Compiler et lancer",[19,20,21,34],"table",{},[22,23,24],"thead",{},[25,26,27,31],"tr",{},[28,29,30],"th",{},"Commande",[28,32,33],{},"Effet",[35,36,37,49,59],"tbody",{},[25,38,39,46],{},[40,41,42],"td",{},[43,44,45],"code",{},"g++ -std=c++17 -Wall -Wextra main.cpp -o prog",[40,47,48],{},"Compile avec g++.",[25,50,51,56],{},[40,52,53],{},[43,54,55],{},"clang++ -std=c++17 -Wall -Wextra main.cpp -o prog",[40,57,58],{},"Compile avec clang++.",[25,60,61,66],{},[40,62,63],{},[43,64,65],{},".\u002Fprog",[40,67,68,69,72],{},"Lance le programme (",[43,70,71],{},".\\prog"," sous Windows).",[10,74,75,76,81],{},"Détails : ",[77,78,80],"a",{"href":79},"\u002Fcpp\u002Fpremier-programme","Premier programme",".",[14,83,85],{"id":84},"types-et-entrées-sorties","Types et entrées-sorties",[87,88,93],"pre",{"className":89,"code":90,"language":91,"meta":92,"style":92},"language-cpp shiki shiki-themes github-light-default github-dark-default github-dark-default","#include \u003Ciostream>\n\nint main() {\n    int n{4};                 \u002F\u002F aussi double, char, bool\n    const double tva{0.2};    \u002F\u002F non modifiable\n    auto duree = 45;          \u002F\u002F type déduit\n    std::cout \u003C\u003C n \u003C\u003C \"\\n\";\n    std::cin >> n;\n}\n","cpp","",[43,94,95,108,115,129,149,169,190,220,234],{"__ignoreMap":92},[96,97,100,104],"span",{"class":98,"line":99},"line",1,[96,101,103],{"class":102},"sOnC1","#include",[96,105,107],{"class":106},"shWOn"," \u003Ciostream>\n",[96,109,111],{"class":98,"line":110},2,[96,112,114],{"emptyLinePlaceholder":113},true,"\n",[96,116,118,121,125],{"class":98,"line":117},3,[96,119,120],{"class":102},"int",[96,122,124],{"class":123},"syCW7"," main",[96,126,128],{"class":127},"scfrF","() {\n",[96,130,132,135,138,142,145],{"class":98,"line":131},4,[96,133,134],{"class":102},"    int",[96,136,137],{"class":127}," n{",[96,139,141],{"class":140},"s5iOY","4",[96,143,144],{"class":127},"};",[96,146,148],{"class":147},"sd6ml","                 \u002F\u002F aussi double, char, bool\n",[96,150,152,155,158,161,164,166],{"class":98,"line":151},5,[96,153,154],{"class":102},"    const",[96,156,157],{"class":102}," double",[96,159,160],{"class":127}," tva{",[96,162,163],{"class":140},"0.2",[96,165,144],{"class":127},[96,167,168],{"class":147},"    \u002F\u002F non modifiable\n",[96,170,172,175,178,181,184,187],{"class":98,"line":171},6,[96,173,174],{"class":102},"    auto",[96,176,177],{"class":127}," duree ",[96,179,180],{"class":102},"=",[96,182,183],{"class":140}," 45",[96,185,186],{"class":127},";",[96,188,189],{"class":147},"          \u002F\u002F type déduit\n",[96,191,193,197,200,203,206,208,211,214,217],{"class":98,"line":192},7,[96,194,196],{"class":195},"sIXEE","    std",[96,198,199],{"class":127},"::cout ",[96,201,202],{"class":102},"\u003C\u003C",[96,204,205],{"class":127}," n ",[96,207,202],{"class":102},[96,209,210],{"class":106}," \"",[96,212,213],{"class":102},"\\n",[96,215,216],{"class":106},"\"",[96,218,219],{"class":127},";\n",[96,221,223,225,228,231],{"class":98,"line":222},8,[96,224,196],{"class":195},[96,226,227],{"class":127},"::cin ",[96,229,230],{"class":102},">>",[96,232,233],{"class":127}," n;\n",[96,235,237],{"class":98,"line":236},9,[96,238,239],{"class":127},"}\n",[10,241,75,242,81],{},[77,243,80],{"href":79},[14,245,247],{"id":246},"conditions-boucles-fonctions","Conditions, boucles, fonctions",[87,249,251],{"className":89,"code":250,"language":91,"meta":92,"style":92},"if (a > b) { \u002F* ... *\u002F } else { \u002F* ... *\u002F }\nfor (int i = 0; i \u003C 3; ++i) { \u002F* ... *\u002F }\nwhile (cond) { \u002F* ... *\u002F }\nfor (int x : collection) { \u002F* range-for *\u002F }\n\nint somme(int a, int b = 0) { return a + b; }\n",[43,252,253,284,324,336,352,356],{"__ignoreMap":92},[96,254,255,258,261,264,267,270,273,276,279,281],{"class":98,"line":99},[96,256,257],{"class":102},"if",[96,259,260],{"class":127}," (a ",[96,262,263],{"class":102},">",[96,265,266],{"class":127}," b) {",[96,268,269],{"class":147}," \u002F* ... *\u002F",[96,271,272],{"class":127}," } ",[96,274,275],{"class":102},"else",[96,277,278],{"class":127}," {",[96,280,269],{"class":147},[96,282,283],{"class":127}," }\n",[96,285,286,289,292,294,297,299,302,305,308,311,314,317,320,322],{"class":98,"line":110},[96,287,288],{"class":102},"for",[96,290,291],{"class":127}," (",[96,293,120],{"class":102},[96,295,296],{"class":127}," i ",[96,298,180],{"class":102},[96,300,301],{"class":140}," 0",[96,303,304],{"class":127},"; i ",[96,306,307],{"class":102},"\u003C",[96,309,310],{"class":140}," 3",[96,312,313],{"class":127},"; ",[96,315,316],{"class":102},"++",[96,318,319],{"class":127},"i) {",[96,321,269],{"class":147},[96,323,283],{"class":127},[96,325,326,329,332,334],{"class":98,"line":117},[96,327,328],{"class":102},"while",[96,330,331],{"class":127}," (cond) {",[96,333,269],{"class":147},[96,335,283],{"class":127},[96,337,338,340,342,344,347,350],{"class":98,"line":131},[96,339,288],{"class":102},[96,341,291],{"class":127},[96,343,120],{"class":102},[96,345,346],{"class":127}," x : collection) {",[96,348,349],{"class":147}," \u002F* range-for *\u002F",[96,351,283],{"class":127},[96,353,354],{"class":98,"line":151},[96,355,114],{"emptyLinePlaceholder":113},[96,357,358,360,363,366,368,371,374,376,379,382,384,387,390,393,396],{"class":98,"line":171},[96,359,120],{"class":102},[96,361,362],{"class":123}," somme",[96,364,365],{"class":127},"(",[96,367,120],{"class":102},[96,369,370],{"class":195}," a",[96,372,373],{"class":127},", ",[96,375,120],{"class":102},[96,377,378],{"class":195}," b",[96,380,381],{"class":102}," =",[96,383,301],{"class":140},[96,385,386],{"class":127},") { ",[96,388,389],{"class":102},"return",[96,391,392],{"class":127}," a ",[96,394,395],{"class":102},"+",[96,397,398],{"class":127}," b; }\n",[10,400,75,401,81],{},[77,402,404],{"href":403},"\u002Fcpp\u002Fconditions-boucles-fonctions","Conditions, boucles et fonctions",[14,406,408],{"id":407},"chaînes-et-vecteurs","Chaînes et vecteurs",[19,410,411,420],{},[22,412,413],{},[25,414,415,418],{},[28,416,417],{},"Code",[28,419,33],{},[35,421,422,432,448,458,468,478],{},[25,423,424,429],{},[40,425,426],{},[43,427,428],{},"std::string s{\"abc\"}",[40,430,431],{},"Crée une chaîne.",[25,433,434,445],{},[40,435,436,373,439,373,442],{},[43,437,438],{},"s.size()",[43,440,441],{},"s + t",[43,443,444],{},"s == t",[40,446,447],{},"Longueur, concaténation, comparaison.",[25,449,450,455],{},[40,451,452],{},[43,453,454],{},"std::getline(std::cin, s)",[40,456,457],{},"Lit une ligne entière.",[25,459,460,465],{},[40,461,462],{},[43,463,464],{},"std::vector\u003Cint> v{1, 2}",[40,466,467],{},"Crée un vecteur.",[25,469,470,475],{},[40,471,472],{},[43,473,474],{},"v.push_back(3)",[40,476,477],{},"Ajoute à la fin.",[25,479,480,485],{},[40,481,482],{},[43,483,484],{},"v.at(i)",[40,486,487],{},"Accès avec vérification.",[10,489,75,490,81],{},[77,491,493],{"href":492},"\u002Fcpp\u002Fstring-et-vector","std::string et std::vector",[14,495,497],{"id":496},"références-et-pointeurs","Références et pointeurs",[19,499,500,510],{},[22,501,502],{},[25,503,504,507],{},[28,505,506],{},"Écriture",[28,508,509],{},"Sens",[35,511,512,522,532,542,555,568],{},[25,513,514,519],{},[40,515,516],{},[43,517,518],{},"void f(int x)",[40,520,521],{},"Copie de l'argument.",[25,523,524,529],{},[40,525,526],{},[43,527,528],{},"void f(int& x)",[40,530,531],{},"Référence, modifie l'original.",[25,533,534,539],{},[40,535,536],{},[43,537,538],{},"void f(const T& x)",[40,540,541],{},"Référence en lecture seule.",[25,543,544,549],{},[40,545,546],{},[43,547,548],{},"int* p = &x;",[40,550,551,552,81],{},"Pointeur vers ",[43,553,554],{},"x",[25,556,557,565],{},[40,558,559,373,562],{},[43,560,561],{},"*p",[43,563,564],{},"p->membre",[40,566,567],{},"Déréférencement.",[25,569,570,575],{},[40,571,572],{},[43,573,574],{},"int* p = nullptr;",[40,576,577],{},"Pointeur vide.",[10,579,75,580,81],{},[77,581,497],{"href":582},"\u002Fcpp\u002Freferences-et-pointeurs",[14,584,586],{"id":585},"classes-et-raii","Classes et RAII",[87,588,590],{"className":89,"code":589,"language":91,"meta":92,"style":92},"class Recette {\npublic:\n    Recette(std::string titre, int minutes)\n        : titre_{std::move(titre)}, minutes_{minutes} {}\n    ~Recette() = default;\n    int minutes() const { return minutes_; }\nprivate:\n    std::string titre_;\n    int minutes_;\n};\n",[43,591,592,603,608,637,664,679,698,703,714,721],{"__ignoreMap":92},[96,593,594,597,600],{"class":98,"line":99},[96,595,596],{"class":102},"class",[96,598,599],{"class":195}," Recette",[96,601,602],{"class":127}," {\n",[96,604,605],{"class":98,"line":110},[96,606,607],{"class":102},"public:\n",[96,609,610,613,615,618,621,624,627,629,631,634],{"class":98,"line":117},[96,611,612],{"class":123},"    Recette",[96,614,365],{"class":127},[96,616,617],{"class":195},"std",[96,619,620],{"class":127},"::",[96,622,623],{"class":195},"string",[96,625,626],{"class":195}," titre",[96,628,373],{"class":127},[96,630,120],{"class":102},[96,632,633],{"class":195}," minutes",[96,635,636],{"class":127},")\n",[96,638,639,642,645,648,650,652,655,658,661],{"class":98,"line":131},[96,640,641],{"class":127},"        : ",[96,643,644],{"class":123},"titre_",[96,646,647],{"class":127},"{",[96,649,617],{"class":195},[96,651,620],{"class":127},[96,653,654],{"class":123},"move",[96,656,657],{"class":127},"(titre)}, ",[96,659,660],{"class":123},"minutes_",[96,662,663],{"class":127},"{minutes} {}\n",[96,665,666,669,672,674,677],{"class":98,"line":151},[96,667,668],{"class":123},"    ~Recette",[96,670,671],{"class":127},"() ",[96,673,180],{"class":102},[96,675,676],{"class":102}," default",[96,678,219],{"class":127},[96,680,681,683,685,687,690,693,695],{"class":98,"line":171},[96,682,134],{"class":102},[96,684,633],{"class":123},[96,686,671],{"class":127},[96,688,689],{"class":102},"const",[96,691,692],{"class":127}," { ",[96,694,389],{"class":102},[96,696,697],{"class":127}," minutes_; }\n",[96,699,700],{"class":98,"line":192},[96,701,702],{"class":102},"private:\n",[96,704,705,707,709,711],{"class":98,"line":222},[96,706,196],{"class":195},[96,708,620],{"class":127},[96,710,623],{"class":195},[96,712,713],{"class":127}," titre_;\n",[96,715,716,718],{"class":98,"line":236},[96,717,134],{"class":102},[96,719,720],{"class":127}," minutes_;\n",[96,722,724],{"class":98,"line":723},10,[96,725,726],{"class":127},"};\n",[10,728,729,730,81],{},"Principe : acquérir une ressource dans le constructeur, la libérer dans le destructeur. Détails : ",[77,731,733],{"href":732},"\u002Fcpp\u002Fclasses-et-raii","Classes, constructeurs et RAII",[14,735,737],{"id":736},"mémoire-et-bibliothèque-standard","Mémoire et bibliothèque standard",[87,739,741],{"className":89,"code":740,"language":91,"meta":92,"style":92},"auto p = std::make_unique\u003CRecette>(\"Tarte\", 60);  \u002F\u002F un propriétaire\nauto q = std::make_shared\u003CRecette>(\"Soupe\", 30);  \u002F\u002F plusieurs\nstd::sort(v.begin(), v.end());\nstd::map\u003Cstd::string, int> notes{{\"Tarte\", 5}};\n",[43,742,743,783,818,842],{"__ignoreMap":92},[96,744,745,748,751,753,756,758,761,763,766,769,772,774,777,780],{"class":98,"line":99},[96,746,747],{"class":102},"auto",[96,749,750],{"class":127}," p ",[96,752,180],{"class":102},[96,754,755],{"class":195}," std",[96,757,620],{"class":127},[96,759,760],{"class":123},"make_unique",[96,762,307],{"class":127},[96,764,765],{"class":195},"Recette",[96,767,768],{"class":127},">(",[96,770,771],{"class":106},"\"Tarte\"",[96,773,373],{"class":127},[96,775,776],{"class":140},"60",[96,778,779],{"class":127},");",[96,781,782],{"class":147},"  \u002F\u002F un propriétaire\n",[96,784,785,787,790,792,794,796,799,801,803,805,808,810,813,815],{"class":98,"line":110},[96,786,747],{"class":102},[96,788,789],{"class":127}," q ",[96,791,180],{"class":102},[96,793,755],{"class":195},[96,795,620],{"class":127},[96,797,798],{"class":123},"make_shared",[96,800,307],{"class":127},[96,802,765],{"class":195},[96,804,768],{"class":127},[96,806,807],{"class":106},"\"Soupe\"",[96,809,373],{"class":127},[96,811,812],{"class":140},"30",[96,814,779],{"class":127},[96,816,817],{"class":147},"  \u002F\u002F plusieurs\n",[96,819,820,822,824,827,830,833,836,839],{"class":98,"line":117},[96,821,617],{"class":195},[96,823,620],{"class":127},[96,825,826],{"class":123},"sort",[96,828,829],{"class":127},"(v.",[96,831,832],{"class":123},"begin",[96,834,835],{"class":127},"(), v.",[96,837,838],{"class":123},"end",[96,840,841],{"class":127},"());\n",[96,843,844,846,848,851,853,855,857,859,861,863,866,868,870,873],{"class":98,"line":131},[96,845,617],{"class":195},[96,847,620],{"class":127},[96,849,850],{"class":195},"map",[96,852,307],{"class":127},[96,854,617],{"class":195},[96,856,620],{"class":127},[96,858,623],{"class":195},[96,860,373],{"class":127},[96,862,120],{"class":102},[96,864,865],{"class":127},"> notes{{",[96,867,771],{"class":106},[96,869,373],{"class":127},[96,871,872],{"class":140},"5",[96,874,875],{"class":127},"}};\n",[19,877,878,888],{},[22,879,880],{},[25,881,882,885],{},[28,883,884],{},"Outil",[28,886,887],{},"Quand",[35,889,890,900,910,930],{},[25,891,892,897],{},[40,893,894],{},[43,895,896],{},"std::unique_ptr",[40,898,899],{},"Un seul propriétaire (choix par défaut).",[25,901,902,907],{},[40,903,904],{},[43,905,906],{},"std::shared_ptr",[40,908,909],{},"Propriété partagée.",[25,911,912,920],{},[40,913,914,373,917],{},[43,915,916],{},"std::sort",[43,918,919],{},"std::find",[40,921,922,923,926,927,81],{},"Trier, chercher sur ",[43,924,925],{},"begin()"," à ",[43,928,929],{},"end()",[25,931,932,937],{},[40,933,934],{},[43,935,936],{},"std::map",[40,938,939],{},"Clés triées associées à des valeurs.",[10,941,75,942,81],{},[77,943,945],{"href":944},"\u002Fcpp\u002Fmemoire-et-bibliotheque","Mémoire, pointeurs intelligents et bibliothèque standard",[947,948,949],"style",{},"html pre.shiki code .sOnC1, html code.shiki .sOnC1{--shiki-light:#CF222E;--shiki-default:#FF7B72;--shiki-dark:#FF7B72}html pre.shiki code .shWOn, html code.shiki .shWOn{--shiki-light:#0A3069;--shiki-default:#A5D6FF;--shiki-dark:#A5D6FF}html pre.shiki code .syCW7, html code.shiki .syCW7{--shiki-light:#8250DF;--shiki-default:#D2A8FF;--shiki-dark:#D2A8FF}html pre.shiki code .scfrF, html code.shiki .scfrF{--shiki-light:#1F2328;--shiki-default:#E6EDF3;--shiki-dark:#E6EDF3}html pre.shiki code .s5iOY, html code.shiki .s5iOY{--shiki-light:#0550AE;--shiki-default:#79C0FF;--shiki-dark:#79C0FF}html pre.shiki code .sd6ml, html code.shiki .sd6ml{--shiki-light:#6E7781;--shiki-default:#8B949E;--shiki-dark:#8B949E}html pre.shiki code .sIXEE, html code.shiki .sIXEE{--shiki-light:#953800;--shiki-default:#FFA657;--shiki-dark:#FFA657}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":92,"searchDepth":110,"depth":117,"links":951},[952,953,954,955,956,957,958],{"id":16,"depth":110,"text":17},{"id":84,"depth":110,"text":85},{"id":246,"depth":110,"text":247},{"id":407,"depth":110,"text":408},{"id":496,"depth":110,"text":497},{"id":585,"depth":110,"text":586},{"id":736,"depth":110,"text":737},"Le mémo de C++ moderne : compilation, types, fonctions, conteneurs, références, classes, pointeurs intelligents et algorithmes.","md",{},[963,964,965,966,967,968,969,970,936,971],"mémo","aide-mémoire","C++17","g++","std::vector","std::string","unique_ptr","RAII","référence","memo","\u002Fcpp",null,{"title":5,"description":959},[977,980],{"nom":978,"url":979},"cppreference.com (version française partielle)","https:\u002F\u002Ffr.cppreference.com\u002Fw\u002Fcpp",{"nom":981,"url":982},"isocpp.org (en anglais)","https:\u002F\u002Fisocpp.org\u002F","cpp\u002Findex","ghaLdrV2UjMggWVFYQ-QGLw8L9QyWu-1-R4aAfB4OFM",[986,988,990,992,994,996,998],{"path":79,"title":80,"stem":987},"cpp\u002F01.premier-programme",{"path":403,"title":404,"stem":989},"cpp\u002F02.conditions-boucles-fonctions",{"path":492,"title":493,"stem":991},"cpp\u002F03.string-et-vector",{"path":582,"title":497,"stem":993},"cpp\u002F04.references-et-pointeurs",{"path":732,"title":733,"stem":995},"cpp\u002F05.classes-et-raii",{"path":944,"title":945,"stem":997},"cpp\u002F06.memoire-et-bibliotheque",{"path":973,"title":5,"stem":983},[974,1000],{"title":80,"path":79,"stem":987,"description":1001,"children":-1},"Compiler et lancer un premier programme C++, puis manipuler variables, types de base et entrées-sorties avec iostream.",[],[1004,1006,1007,1008,1010,1011,1013],{"path":79,"title":80,"niveau":1005,"stem":987},"debutant",{"path":403,"title":404,"niveau":1005,"stem":989},{"path":492,"title":493,"niveau":1005,"stem":991},{"path":582,"title":497,"niveau":1009,"stem":993},"intermediaire",{"path":732,"title":733,"niveau":1009,"stem":995},{"path":944,"title":945,"niveau":1012,"stem":997},"avance",{"path":973,"title":5,"niveau":972,"stem":983},1794583431123]