Accéder aux éléments
Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 12 sur 56.
Maintenant que vous savez créer des vecteurs et y ajouter des éléments, vous devez savoir comment récupérer des éléments spécifiques de votre vecteur. C++ propose deux manières principales d'accéder aux éléments individuels : l'opérateur crochet et la méthode .at().
L'opérateur crochet [] fonctionne exactement comme avec les tableaux classiques. Vous spécifiez l'index de l'élément auquel vous souhaitez accéder :
std::vector<int> numbers = {10, 20, 30, 40};
int first = numbers[0]; // Récupère 10
int third = numbers[2]; // Récupère 30La méthode .at() fournit une alternative pour accéder aux éléments avec une différence importante - elle inclut la vérification des limites :
int first = numbers.at(0); // Récupère 10
int third = numbers.at(2); // Récupère 30La différence clé est la sécurité : si vous essayez d'accéder à un index qui n'existe pas, [] peut provoquer un comportement imprévisible, tandis que .at() lèvera une exception pour vous alerter de l'erreur. À des fins d'apprentissage, les deux méthodes fonctionnent bien, mais .at() offre une protection supplémentaire contre l'accès à des positions invalides dans votre vecteur.
Défi
FacileCréez un programme qui démontre l'accès aux éléments d'un vecteur en récupérant des éléments spécifiques d'un vecteur à l'aide de l'opérateur crochet et de la méthode .at().
Les entrées suivantes seront fournies :
- Un entier
nreprésentant le nombre d'éléments dans le vecteur - Ensuite,
nentiers pour remplir le vecteur - Un entier
index1représentant le premier index à accéder - Un entier
index2représentant le deuxième index à accéder
Votre programme doit :
- Créer un
std::vector<int>nommédata - Utiliser
push_back()pour ajouter chacun desnnombres d'entrée au vecteur - Accéder à l'élément à l'index
index1en utilisant l'opérateur crochet[]et le stocker dans une variable nomméevalue1 - Accéder à l'élément à l'index
index2en utilisant la méthode.at()et le stocker dans une variable nomméevalue2 - Afficher les valeurs accédées et leurs indices correspondants
- Afficher le premier et le dernier élément du vecteur en utilisant l'accès par index
Utilisez le format de sortie exact suivant :
Element at index [index1]: [value1]
Element at index [index2]: [value2]
First element: [first value]
Last element: [last value]Pour accéder au dernier élément, utilisez data.size() - 1 comme index avec l'opérateur crochet.
Aide-mémoire
Les vecteurs C++ offrent deux manières principales d'accéder aux éléments individuels :
L'opérateur crochet [] :
std::vector<int> numbers = {10, 20, 30, 40};
int first = numbers[0]; // Gets 10
int third = numbers[2]; // Gets 30La méthode .at() :
int first = numbers.at(0); // Gets 10
int third = numbers.at(2); // Gets 30La différence clé est la sécurité : [] peut provoquer un comportement imprévisible lors de l'accès à des indices invalides, tandis que .at() lève une exception pour la protection de la vérification des bornes.
Pour accéder au dernier élément, utilisez data.size() - 1 comme indice.
Essayez vous-même
#include <iostream>
#include <vector>
using namespace std;
int main() {
// Lire l'entrée
int n;
cin >> n;
vector<int> data;
// Lire n entiers et les ajouter au vecteur
for (int i = 0; i < n; i++) {
int num;
cin >> num;
data.push_back(num);
}
int index1, index2;
cin >> index1;
cin >> index2;
// TODO : Écrivez votre code ci-dessous
// Accéder aux éléments en utilisant l'opérateur [] et la méthode .at()
// Stocker les valeurs accédées dans value1 et value2
// Afficher les résultats
cout << "Element at index " << index1 << ": " << value1 << endl;
cout << "Element at index " << index2 << ": " << value2 << endl;
cout << "First element: " << /* accéder au premier élément */ << endl;
cout << "Last element: " << /* accéder au dernier élément en utilisant data.size() - 1 */ << endl;
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Pointeurs et mémoire
Qu'est-ce qu'un pointeur ?Opérateur d'adresseOpérateur de déréférencementPointeurs nulsPointeurs et tableauxMémoire dynamique avec 'new'Libérer la mémoire avec 'delete'Récapitulatif - Pratique des pointeurs2Vecteurs (Tableaux dynamiques)
Introduction à std::vectorCréer un vecteurAjouter des élémentsAccéder aux élémentsTaille d'un vecteurItérer avec une boucle ForBoucle For basée sur l'intervalleSupprimer des élémentsRécapitulatif - Opérations sur les vecteurs3Projet : Outil de liste de tâches
Présentation du projetAjouter une tâche