[{"data":1,"prerenderedAt":1189},["ShallowReactive",2],{"page-\u002Fcpp\u002Fstring-et-vector":3,"pieces-cpp":1146,"autour-\u002Fcpp\u002Fstring-et-vector":1171,"prerequis-\u002Fcpp\u002Fstring-et-vector":1176,"plan-cpp":1178},{"id":4,"title":5,"body":6,"description":1116,"extension":1117,"ligne":51,"meta":1118,"motsCles":1119,"navigation":81,"niveau":1123,"path":1124,"prerequis":1125,"ressources":1127,"seo":1136,"sources":1137,"stem":1144,"__hash__":1145},"docs\u002Fcpp\u002F03.string-et-vector.md","std::string et std::vector",{"type":7,"value":8,"toc":1105},"minimark",[9,14,35,39,46,182,193,197,208,313,316,386,397,401,411,483,505,509,519,594,599,603,606,705,718,721,780,787,791,858,861,906,915,919,922,1040,1046,1050,1101],[10,11,13],"h2",{"id":12},"ce-que-tu-vas-apprendre","Ce que tu vas apprendre",[15,16,17,26,32],"ul",{},[18,19,20,21,25],"li",{},"Créer, assembler et parcourir des chaînes avec ",[22,23,24],"code",{},"std::string",".",[18,27,28,29,25],{},"Stocker une liste d'éléments dans un ",[22,30,31],{},"std::vector",[18,33,34],{},"Lire une ligne entière saisie par l'utilisateur.",[10,36,38],{"id":37},"le-texte-avec-stdstring","Le texte avec std::string",[40,41,42,43,45],"p",{},"Le type ",[22,44,24],{}," représente une chaîne de caractères. Il se charge de la mémoire à ta place et grandit selon les besoins :",[47,48,53],"pre",{"className":49,"code":50,"language":51,"meta":52,"style":52},"language-cpp shiki shiki-themes github-light-default github-dark-default github-dark-default","#include \u003Ciostream>\n#include \u003Cstring>\n\nint main() {\n    std::string nom{\"Tarte aux pommes\"};\n    std::cout \u003C\u003C nom \u003C\u003C \"\\n\";\n    std::cout \u003C\u003C nom.size() \u003C\u003C \" caractères\\n\";\n}\n","cpp","",[22,54,55,68,76,83,97,119,147,176],{"__ignoreMap":52},[56,57,60,64],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"sOnC1","#include",[56,65,67],{"class":66},"shWOn"," \u003Ciostream>\n",[56,69,71,73],{"class":58,"line":70},2,[56,72,63],{"class":62},[56,74,75],{"class":66}," \u003Cstring>\n",[56,77,79],{"class":58,"line":78},3,[56,80,82],{"emptyLinePlaceholder":81},true,"\n",[56,84,86,89,93],{"class":58,"line":85},4,[56,87,88],{"class":62},"int",[56,90,92],{"class":91},"syCW7"," main",[56,94,96],{"class":95},"scfrF","() {\n",[56,98,100,104,107,110,113,116],{"class":58,"line":99},5,[56,101,103],{"class":102},"sIXEE","    std",[56,105,106],{"class":95},"::",[56,108,109],{"class":102},"string",[56,111,112],{"class":95}," nom{",[56,114,115],{"class":66},"\"Tarte aux pommes\"",[56,117,118],{"class":95},"};\n",[56,120,122,124,127,130,133,135,138,141,144],{"class":58,"line":121},6,[56,123,103],{"class":102},[56,125,126],{"class":95},"::cout ",[56,128,129],{"class":62},"\u003C\u003C",[56,131,132],{"class":95}," nom ",[56,134,129],{"class":62},[56,136,137],{"class":66}," \"",[56,139,140],{"class":62},"\\n",[56,142,143],{"class":66},"\"",[56,145,146],{"class":95},";\n",[56,148,150,152,154,156,159,162,165,167,170,172,174],{"class":58,"line":149},7,[56,151,103],{"class":102},[56,153,126],{"class":95},[56,155,129],{"class":62},[56,157,158],{"class":95}," nom.",[56,160,161],{"class":91},"size",[56,163,164],{"class":95},"() ",[56,166,129],{"class":62},[56,168,169],{"class":66}," \" caractères",[56,171,140],{"class":62},[56,173,143],{"class":66},[56,175,146],{"class":95},[56,177,179],{"class":58,"line":178},8,[56,180,181],{"class":95},"}\n",[40,183,184,187,188,192],{},[22,185,186],{},"nom.size()"," renvoie la longueur. On appelle une ",[189,190,191],"strong",{},"méthode"," (une fonction attachée à un objet) avec le point.",[10,194,196],{"id":195},"assembler-et-comparer","Assembler et comparer",[40,198,199,200,203,204,207],{},"L'opérateur ",[22,201,202],{},"+"," concatène, ",[22,205,206],{},"=="," compare le contenu :",[47,209,211],{"className":49,"code":210,"language":51,"meta":52,"style":52},"std::string prenom{\"Tarte\"};\nstd::string suite{\" tatin\"};\nstd::string titre = prenom + suite;   \u002F\u002F \"Tarte tatin\"\n\nif (titre == \"Tarte tatin\") {\n    std::cout \u003C\u003C \"Même recette\\n\";\n}\n",[22,212,213,230,246,272,276,292,309],{"__ignoreMap":52},[56,214,215,218,220,222,225,228],{"class":58,"line":59},[56,216,217],{"class":102},"std",[56,219,106],{"class":95},[56,221,109],{"class":102},[56,223,224],{"class":95}," prenom{",[56,226,227],{"class":66},"\"Tarte\"",[56,229,118],{"class":95},[56,231,232,234,236,238,241,244],{"class":58,"line":70},[56,233,217],{"class":102},[56,235,106],{"class":95},[56,237,109],{"class":102},[56,239,240],{"class":95}," suite{",[56,242,243],{"class":66},"\" tatin\"",[56,245,118],{"class":95},[56,247,248,250,252,254,257,260,263,265,268],{"class":58,"line":78},[56,249,217],{"class":102},[56,251,106],{"class":95},[56,253,109],{"class":95},[56,255,256],{"class":95}," titre ",[56,258,259],{"class":62},"=",[56,261,262],{"class":95}," prenom ",[56,264,202],{"class":62},[56,266,267],{"class":95}," suite;",[56,269,271],{"class":270},"sd6ml","   \u002F\u002F \"Tarte tatin\"\n",[56,273,274],{"class":58,"line":85},[56,275,82],{"emptyLinePlaceholder":81},[56,277,278,281,284,286,289],{"class":58,"line":99},[56,279,280],{"class":62},"if",[56,282,283],{"class":95}," (titre ",[56,285,206],{"class":62},[56,287,288],{"class":66}," \"Tarte tatin\"",[56,290,291],{"class":95},") {\n",[56,293,294,296,298,300,303,305,307],{"class":58,"line":121},[56,295,103],{"class":102},[56,297,126],{"class":95},[56,299,129],{"class":62},[56,301,302],{"class":66}," \"Même recette",[56,304,140],{"class":62},[56,306,143],{"class":66},[56,308,146],{"class":95},[56,310,311],{"class":58,"line":149},[56,312,181],{"class":95},[40,314,315],{},"Quelques méthodes utiles :",[317,318,319,332],"table",{},[320,321,322],"thead",{},[323,324,325,329],"tr",{},[326,327,328],"th",{},"Méthode",[326,330,331],{},"Effet",[333,334,335,346,356,366,376],"tbody",{},[323,336,337,343],{},[338,339,340],"td",{},[22,341,342],{},"s.size()",[338,344,345],{},"Nombre de caractères.",[323,347,348,353],{},[338,349,350],{},[22,351,352],{},"s.empty()",[338,354,355],{},"Vrai si la chaîne est vide.",[323,357,358,363],{},[338,359,360],{},[22,361,362],{},"s.substr(0, 5)",[338,364,365],{},"Extrait 5 caractères depuis la position 0.",[323,367,368,373],{},[338,369,370],{},[22,371,372],{},"s.find(\"pom\")",[338,374,375],{},"Position de la première occurrence.",[323,377,378,383],{},[338,379,380],{},[22,381,382],{},"s[0]",[338,384,385],{},"Premier caractère.",[40,387,388,389,392,393,396],{},"Si ",[22,390,391],{},"find"," ne trouve rien, il renvoie la constante ",[22,394,395],{},"std::string::npos",". Compare le résultat à cette constante.",[10,398,400],{"id":399},"lire-une-phrase-avec-getline","Lire une phrase avec getline",[40,402,403,406,407,410],{},[22,404,405],{},"std::cin >> mot"," s'arrête au premier espace. Pour lire toute une ligne, utilise ",[22,408,409],{},"std::getline"," :",[47,412,414],{"className":49,"code":413,"language":51,"meta":52,"style":52},"std::string titre;\nstd::cout \u003C\u003C \"Nom de la recette : \";\nstd::getline(std::cin, titre);\nstd::cout \u003C\u003C \"Enregistré : \" \u003C\u003C titre \u003C\u003C \"\\n\";\n",[22,415,416,427,440,457],{"__ignoreMap":52},[56,417,418,420,422,424],{"class":58,"line":59},[56,419,217],{"class":102},[56,421,106],{"class":95},[56,423,109],{"class":95},[56,425,426],{"class":95}," titre;\n",[56,428,429,431,433,435,438],{"class":58,"line":70},[56,430,217],{"class":102},[56,432,126],{"class":95},[56,434,129],{"class":62},[56,436,437],{"class":66}," \"Nom de la recette : \"",[56,439,146],{"class":95},[56,441,442,444,446,449,452,454],{"class":58,"line":78},[56,443,217],{"class":102},[56,445,106],{"class":95},[56,447,448],{"class":91},"getline",[56,450,451],{"class":95},"(",[56,453,217],{"class":102},[56,455,456],{"class":95},"::cin, titre);\n",[56,458,459,461,463,465,468,471,473,475,477,479,481],{"class":58,"line":85},[56,460,217],{"class":102},[56,462,126],{"class":95},[56,464,129],{"class":62},[56,466,467],{"class":66}," \"Enregistré : \"",[56,469,470],{"class":62}," \u003C\u003C",[56,472,256],{"class":95},[56,474,129],{"class":62},[56,476,137],{"class":66},[56,478,140],{"class":62},[56,480,143],{"class":66},[56,482,146],{"class":95},[484,485,486],"warning",{},[40,487,488,489,492,493,495,496,498,499,502,503,25],{},"Si tu lis un nombre avec ",[22,490,491],{},"cin >>"," juste avant un ",[22,494,448],{},", le retour à la ligne resté dans le flux est lu par ",[22,497,448],{},", qui renvoie une chaîne vide. Ajoute ",[22,500,501],{},"std::cin.ignore()"," entre les deux, ou lis tout avec ",[22,504,448],{},[10,506,508],{"id":507},"une-liste-avec-stdvector","Une liste avec std::vector",[40,510,511,512,514,515,518],{},"Un ",[22,513,31],{}," est un ",[189,516,517],{},"tableau dynamique"," : une suite d'éléments du même type, qui peut grandir. Le type des éléments se note entre chevrons :",[47,520,522],{"className":49,"code":521,"language":51,"meta":52,"style":52},"#include \u003Cvector>\n#include \u003Cstring>\n\nstd::vector\u003Cstd::string> ingredients{\"farine\", \"oeufs\", \"lait\"};\ningredients.push_back(\"sucre\");\n",[22,523,524,531,537,541,578],{"__ignoreMap":52},[56,525,526,528],{"class":58,"line":59},[56,527,63],{"class":62},[56,529,530],{"class":66}," \u003Cvector>\n",[56,532,533,535],{"class":58,"line":70},[56,534,63],{"class":62},[56,536,75],{"class":66},[56,538,539],{"class":58,"line":78},[56,540,82],{"emptyLinePlaceholder":81},[56,542,543,545,547,550,553,555,557,559,562,565,568,571,573,576],{"class":58,"line":85},[56,544,217],{"class":102},[56,546,106],{"class":95},[56,548,549],{"class":102},"vector",[56,551,552],{"class":95},"\u003C",[56,554,217],{"class":102},[56,556,106],{"class":95},[56,558,109],{"class":102},[56,560,561],{"class":95},"> ingredients{",[56,563,564],{"class":66},"\"farine\"",[56,566,567],{"class":95},", ",[56,569,570],{"class":66},"\"oeufs\"",[56,572,567],{"class":95},[56,574,575],{"class":66},"\"lait\"",[56,577,118],{"class":95},[56,579,580,583,586,588,591],{"class":58,"line":99},[56,581,582],{"class":95},"ingredients.",[56,584,585],{"class":91},"push_back",[56,587,451],{"class":95},[56,589,590],{"class":66},"\"sucre\"",[56,592,593],{"class":95},");\n",[40,595,596,598],{},[22,597,585],{}," ajoute un élément à la fin. Le vecteur gère lui-même la mémoire nécessaire.",[10,600,602],{"id":601},"lire-et-parcourir","Lire et parcourir",[40,604,605],{},"On accède à un élément par son indice, qui commence à 0 :",[47,607,609],{"className":49,"code":608,"language":51,"meta":52,"style":52},"std::cout \u003C\u003C ingredients[0] \u003C\u003C \"\\n\";      \u002F\u002F farine\nstd::cout \u003C\u003C ingredients.at(1) \u003C\u003C \"\\n\";   \u002F\u002F oeufs\nstd::cout \u003C\u003C ingredients.size() \u003C\u003C \"\\n\";  \u002F\u002F 4\n",[22,610,611,643,678],{"__ignoreMap":52},[56,612,613,615,617,619,622,626,629,631,633,635,637,640],{"class":58,"line":59},[56,614,217],{"class":102},[56,616,126],{"class":95},[56,618,129],{"class":62},[56,620,621],{"class":95}," ingredients[",[56,623,625],{"class":624},"s5iOY","0",[56,627,628],{"class":95},"] ",[56,630,129],{"class":62},[56,632,137],{"class":66},[56,634,140],{"class":62},[56,636,143],{"class":66},[56,638,639],{"class":95},";",[56,641,642],{"class":270},"      \u002F\u002F farine\n",[56,644,645,647,649,651,654,657,659,662,665,667,669,671,673,675],{"class":58,"line":70},[56,646,217],{"class":102},[56,648,126],{"class":95},[56,650,129],{"class":62},[56,652,653],{"class":95}," ingredients.",[56,655,656],{"class":91},"at",[56,658,451],{"class":95},[56,660,661],{"class":624},"1",[56,663,664],{"class":95},") ",[56,666,129],{"class":62},[56,668,137],{"class":66},[56,670,140],{"class":62},[56,672,143],{"class":66},[56,674,639],{"class":95},[56,676,677],{"class":270},"   \u002F\u002F oeufs\n",[56,679,680,682,684,686,688,690,692,694,696,698,700,702],{"class":58,"line":78},[56,681,217],{"class":102},[56,683,126],{"class":95},[56,685,129],{"class":62},[56,687,653],{"class":95},[56,689,161],{"class":91},[56,691,164],{"class":95},[56,693,129],{"class":62},[56,695,137],{"class":66},[56,697,140],{"class":62},[56,699,143],{"class":66},[56,701,639],{"class":95},[56,703,704],{"class":270},"  \u002F\u002F 4\n",[40,706,707,708,711,712,714,715,717],{},"La différence entre les deux : ",[22,709,710],{},"[]"," ne vérifie pas l'indice, alors que ",[22,713,656],{}," lance une erreur si l'indice sort des bornes. Un indice invalide avec ",[22,716,710],{}," est un comportement indéfini, donc un bug dangereux.",[40,719,720],{},"Pour tout parcourir, le range-for du cours précédent :",[47,722,724],{"className":49,"code":723,"language":51,"meta":52,"style":52},"for (const std::string& ingredient : ingredients) {\n    std::cout \u003C\u003C \"- \" \u003C\u003C ingredient \u003C\u003C \"\\n\";\n}\n",[22,725,726,750,776],{"__ignoreMap":52},[56,727,728,731,734,737,740,742,744,747],{"class":58,"line":59},[56,729,730],{"class":62},"for",[56,732,733],{"class":95}," (",[56,735,736],{"class":62},"const",[56,738,739],{"class":102}," std",[56,741,106],{"class":95},[56,743,109],{"class":102},[56,745,746],{"class":62},"&",[56,748,749],{"class":95}," ingredient : ingredients) {\n",[56,751,752,754,756,758,761,763,766,768,770,772,774],{"class":58,"line":70},[56,753,103],{"class":102},[56,755,126],{"class":95},[56,757,129],{"class":62},[56,759,760],{"class":66}," \"- \"",[56,762,470],{"class":62},[56,764,765],{"class":95}," ingredient ",[56,767,129],{"class":62},[56,769,137],{"class":66},[56,771,140],{"class":62},[56,773,143],{"class":66},[56,775,146],{"class":95},[56,777,778],{"class":58,"line":78},[56,779,181],{"class":95},[40,781,782,783,786],{},"Le ",[22,784,785],{},"const std::string&"," évite de copier chaque chaîne. On l'explique au cours 04 ; pour l'instant, recopie la forme.",[10,788,790],{"id":789},"modifier-un-vecteur","Modifier un vecteur",[317,792,793,802],{},[320,794,795],{},[323,796,797,800],{},[326,798,799],{},"Opération",[326,801,331],{},[333,803,804,818,828,838,848],{},[323,805,806,811],{},[338,807,808],{},[22,809,810],{},"v.push_back(x)",[338,812,813,814,817],{},"Ajoute ",[22,815,816],{},"x"," à la fin.",[323,819,820,825],{},[338,821,822],{},[22,823,824],{},"v.pop_back()",[338,826,827],{},"Retire le dernier élément.",[323,829,830,835],{},[338,831,832],{},[22,833,834],{},"v.clear()",[338,836,837],{},"Vide le vecteur.",[323,839,840,845],{},[338,841,842],{},[22,843,844],{},"v.empty()",[338,846,847],{},"Vrai s'il ne contient rien.",[323,849,850,855],{},[338,851,852],{},[22,853,854],{},"v.back()",[338,856,857],{},"Accès au dernier élément.",[40,859,860],{},"Un vecteur vide se déclare simplement ainsi :",[47,862,864],{"className":49,"code":863,"language":51,"meta":52,"style":52},"std::vector\u003Cint> notes;\nnotes.push_back(4);\nnotes.push_back(5);\n",[22,865,866,879,893],{"__ignoreMap":52},[56,867,868,870,873,876],{"class":58,"line":59},[56,869,217],{"class":102},[56,871,872],{"class":95},"::vector",[56,874,875],{"class":62},"\u003Cint>",[56,877,878],{"class":95}," notes;\n",[56,880,881,884,886,888,891],{"class":58,"line":70},[56,882,883],{"class":95},"notes.",[56,885,585],{"class":91},[56,887,451],{"class":95},[56,889,890],{"class":624},"4",[56,892,593],{"class":95},[56,894,895,897,899,901,904],{"class":58,"line":78},[56,896,883],{"class":95},[56,898,585],{"class":91},[56,900,451],{"class":95},[56,902,903],{"class":624},"5",[56,905,593],{"class":95},[907,908,909],"tip",{},[40,910,911,912,914],{},"Quand tu hésites entre un tableau classique et un conteneur, choisis ",[22,913,31],{},". Il connaît sa taille et se copie proprement.",[10,916,918],{"id":917},"une-fonction-qui-reçoit-un-vecteur","Une fonction qui reçoit un vecteur",[40,920,921],{},"Les conteneurs se passent aux fonctions comme n'importe quelle valeur :",[47,923,925],{"className":49,"code":924,"language":51,"meta":52,"style":52},"double moyenne(const std::vector\u003Cint>& notes) {\n    if (notes.empty()) return 0.0;\n    int somme = 0;\n    for (int n : notes) somme += n;\n    return static_cast\u003Cdouble>(somme) \u002F notes.size();\n}\n",[22,926,927,959,981,996,1014,1036],{"__ignoreMap":52},[56,928,929,932,935,937,939,941,943,945,947,949,952,954,957],{"class":58,"line":59},[56,930,931],{"class":62},"double",[56,933,934],{"class":91}," moyenne",[56,936,451],{"class":95},[56,938,736],{"class":62},[56,940,739],{"class":102},[56,942,106],{"class":95},[56,944,549],{"class":102},[56,946,552],{"class":95},[56,948,88],{"class":62},[56,950,951],{"class":95},">",[56,953,746],{"class":62},[56,955,956],{"class":102}," notes",[56,958,291],{"class":95},[56,960,961,964,967,970,973,976,979],{"class":58,"line":70},[56,962,963],{"class":62},"    if",[56,965,966],{"class":95}," (notes.",[56,968,969],{"class":91},"empty",[56,971,972],{"class":95},"()) ",[56,974,975],{"class":62},"return",[56,977,978],{"class":624}," 0.0",[56,980,146],{"class":95},[56,982,983,986,989,991,994],{"class":58,"line":78},[56,984,985],{"class":62},"    int",[56,987,988],{"class":95}," somme ",[56,990,259],{"class":62},[56,992,993],{"class":624}," 0",[56,995,146],{"class":95},[56,997,998,1001,1003,1005,1008,1011],{"class":58,"line":85},[56,999,1000],{"class":62},"    for",[56,1002,733],{"class":95},[56,1004,88],{"class":62},[56,1006,1007],{"class":95}," n : notes) somme ",[56,1009,1010],{"class":62},"+=",[56,1012,1013],{"class":95}," n;\n",[56,1015,1016,1019,1022,1025,1028,1031,1033],{"class":58,"line":99},[56,1017,1018],{"class":62},"    return",[56,1020,1021],{"class":62}," static_cast\u003Cdouble>",[56,1023,1024],{"class":95},"(somme) ",[56,1026,1027],{"class":62},"\u002F",[56,1029,1030],{"class":95}," notes.",[56,1032,161],{"class":91},[56,1034,1035],{"class":95},"();\n",[56,1037,1038],{"class":58,"line":121},[56,1039,181],{"class":95},[40,1041,782,1042,1045],{},[22,1043,1044],{},"static_cast\u003Cdouble>"," convertit la somme en réel avant la division. Sans lui, la division entière tronquerait le résultat.",[10,1047,1049],{"id":1048},"à-retenir","À retenir",[15,1051,1052,1066,1072,1081,1095,1098],{},[18,1053,1054,1056,1057,203,1059,1061,1062,1065],{},[22,1055,24],{}," stocke du texte ; ",[22,1058,202],{},[22,1060,206],{}," compare, ",[22,1063,1064],{},"size()"," donne la longueur.",[18,1067,1068,1071],{},[22,1069,1070],{},"std::getline(std::cin, s)"," lit une ligne entière, espaces compris.",[18,1073,1074,1077,1078,25],{},[22,1075,1076],{},"std::vector\u003CT>"," est une liste dynamique d'éléments de type ",[22,1079,1080],{},"T",[18,1082,1083,1085,1086,1088,1089,1091,1092,1094],{},[22,1084,585],{}," ajoute, ",[22,1087,161],{}," compte, ",[22,1090,656],{}," vérifie l'indice là où ",[22,1093,710],{}," ne le fait pas.",[18,1096,1097],{},"Le range-for parcourt un vecteur ou une chaîne sans gérer d'indice.",[18,1099,1100],{},"Préfère ces types aux tableaux et aux chaînes du langage C.",[1102,1103,1104],"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 .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);}html pre.shiki code .sd6ml, html code.shiki .sd6ml{--shiki-light:#6E7781;--shiki-default:#8B949E;--shiki-dark:#8B949E}html pre.shiki code .s5iOY, html code.shiki .s5iOY{--shiki-light:#0550AE;--shiki-default:#79C0FF;--shiki-dark:#79C0FF}",{"title":52,"searchDepth":70,"depth":78,"links":1106},[1107,1108,1109,1110,1111,1112,1113,1114,1115],{"id":12,"depth":70,"text":13},{"id":37,"depth":70,"text":38},{"id":195,"depth":70,"text":196},{"id":399,"depth":70,"text":400},{"id":507,"depth":70,"text":508},{"id":601,"depth":70,"text":602},{"id":789,"depth":70,"text":790},{"id":917,"depth":70,"text":918},{"id":1048,"depth":70,"text":1049},"Manipuler du texte avec std::string et des listes d'éléments avec std::vector, les deux outils de base de la bibliothèque standard.","md",{},[24,31,585,161,448,1120,656,1121,1122],"range-for","bibliothèque standard","conteneur","debutant","\u002Fcpp\u002Fstring-et-vector",[1126],"\u002Fcpp\u002Fconditions-boucles-fonctions",[1128,1132],{"nom":1129,"url":1130,"type":1131},"OpenClassrooms, Apprenez à programmer en C++","https:\u002F\u002Fopenclassrooms.com\u002Ffr\u002Fcourses\u002F1894236-programmez-avec-le-langage-c","cours",{"nom":1133,"url":1134,"type":1135},"cppreference.com, référence C++ en français","https:\u002F\u002Ffr.cppreference.com\u002Fw\u002Fcpp","doc",{"title":5,"description":1116},[1138,1141],{"nom":1139,"url":1140},"cppreference.com, std::basic_string (version française partielle)","https:\u002F\u002Ffr.cppreference.com\u002Fw\u002Fcpp\u002Fstring\u002Fbasic_string",{"nom":1142,"url":1143},"cppreference.com, std::vector (version française partielle)","https:\u002F\u002Ffr.cppreference.com\u002Fw\u002Fcpp\u002Fcontainer\u002Fvector","cpp\u002F03.string-et-vector","zUGiZdg4rOwL_E669IZjK6osK1638duARHIeR0EPwDs",[1147,1151,1154,1155,1159,1163,1167],{"path":1148,"title":1149,"stem":1150},"\u002Fcpp\u002Fpremier-programme","Premier programme","cpp\u002F01.premier-programme",{"path":1126,"title":1152,"stem":1153},"Conditions, boucles et fonctions","cpp\u002F02.conditions-boucles-fonctions",{"path":1124,"title":5,"stem":1144},{"path":1156,"title":1157,"stem":1158},"\u002Fcpp\u002Freferences-et-pointeurs","Références et pointeurs","cpp\u002F04.references-et-pointeurs",{"path":1160,"title":1161,"stem":1162},"\u002Fcpp\u002Fclasses-et-raii","Classes, constructeurs et RAII","cpp\u002F05.classes-et-raii",{"path":1164,"title":1165,"stem":1166},"\u002Fcpp\u002Fmemoire-et-bibliotheque","Mémoire, pointeurs intelligents et bibliothèque standard","cpp\u002F06.memoire-et-bibliotheque",{"path":1168,"title":1169,"stem":1170},"\u002Fcpp","C++","cpp\u002Findex",[1172,1174],{"title":1152,"path":1126,"stem":1153,"description":1173,"children":-1},"Prendre des décisions avec if et switch, répéter avec for et while, et découper un programme en fonctions.",{"title":1157,"path":1156,"stem":1158,"description":1175,"children":-1},"Comprendre les adresses mémoire, passer des arguments sans copie avec les références et manipuler des pointeurs en sécurité.",[1177],{"path":1126,"title":1152,"ligne":51},[1179,1180,1181,1182,1184,1185,1187],{"path":1148,"title":1149,"niveau":1123,"stem":1150},{"path":1126,"title":1152,"niveau":1123,"stem":1153},{"path":1124,"title":5,"niveau":1123,"stem":1144},{"path":1156,"title":1157,"niveau":1183,"stem":1158},"intermediaire",{"path":1160,"title":1161,"niveau":1183,"stem":1162},{"path":1164,"title":1165,"niveau":1186,"stem":1166},"avance",{"path":1168,"title":1169,"niveau":1188,"stem":1170},"memo",1794583454667]