Leçons du module (1/2)
Tableaux et Vecteurs
En C++, la gestion des collections de données se fait principalement via deux outils : les tableaux à l'ancienne (C-style arrays) et les vecteurs (std::vector). Comprendre la différence entre la mémoire statique et la mémoire dynamique est essentiel pour écrire un code efficace.
1. Tableaux Statiques (C-style Arrays)
Un tableau est une collection d'éléments du même type stockés dans des positions contiguës de la mémoire. La taille d'un tableau statique doit être connue au moment de la compilation et ne peut pas être modifiée par la suite :
int grades[5] = {18, 22, 25, 28, 30}; // Array di 5 interi
Caractéristiques principales :
- Taille fixe : Il n'est pas possible d'ajouter ou de supprimer des éléments au moment de l'exécution (runtime).
- Allocation sur la Pile (Stack) : Ils sont très rapides à allouer et à désallouer.
- Accès : Se fait via l'opérateur d'index
[](ex.grades[0]pour le premier élément).
2. Vecteurs Dynamiques (std::vector)
La bibliothèque standard (STL) du C++ fournit la classe std::vector, qui représente un tableau dynamique. Pour l'utiliser, il est nécessaire d'inclure l'en-tête <vector> :
#include <vector>
std::vector<int> numbers; // Crea un vettore vuoto di interi
Opérations courantes :
- Ajout à la fin : La méthode
.push_back(valore)insère un élément à la fin du vecteur, en réallouant automatiquement la mémoire si nécessaire. - Taille : La méthode
.size()renvoie le nombre d'éléments actuellement présents dans le vecteur. - Accès sécurisé : En plus de l'opérateur
[], il est possible d'utiliser la méthode.at(indice)(ex.numbers.at(0)), qui lève une exception si l'indice est hors limites.
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores ora contiene {90, 85, 95}
std::cout << scores.size(); // Stampa 3
À vous de jouer
Déclarez un std::vector d'entiers appelé numbers. Ajoutez-y les valeurs 10, 20 et 30 à l'aide de la méthode .push_back(), puis affichez sa taille en utilisant numbers.size().
Afficher l'indice
Déclarez le vecteur avec `std::vector<int> numbers;`, insérez les trois nombres avec `.push_back(valore)`et affichez-le avec`std::cout << numbers.size();`.
Solution disponible après 3 tentatives
Dans le main, un tableau grades de 5 éléments est défini. Écrivez une boucle for pour calculer la somme de tous les éléments du tableau, stockez-la dans la variable sum et affichez-la avec std::cout.
Afficher l'indice
Utilisez une boucle `for (int i = 0; i < 5; ++i)`et additionnez chaque élément à l'intérieur de la boucle avec`sum += grades[i];`.
Solution disponible après 3 tentatives
Quelle est la méthode correcte pour ajouter un élément à la fin d'un std::vector en C++ ?
std::vector<int> numbers; // come aggiungere il valore 50?