Menu
Coddy logo textTech

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 30

La 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 30

La 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.

challenge icon

Défi

Facile

Cré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 n représentant le nombre d'éléments dans le vecteur
  • Ensuite, n entiers pour remplir le vecteur
  • Un entier index1 représentant le premier index à accéder
  • Un entier index2 représentant le deuxième index à accéder

Votre programme doit :

  1. Créer un std::vector<int> nommé data
  2. Utiliser push_back() pour ajouter chacun des n nombres d'entrée au vecteur
  3. Accéder à l'élément à l'index index1 en utilisant l'opérateur crochet [] et le stocker dans une variable nommée value1
  4. Accéder à l'élément à l'index index2 en utilisant la méthode .at() et le stocker dans une variable nommée value2
  5. Afficher les valeurs accédées et leurs indices correspondants
  6. 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 30

La méthode .at() :

int first = numbers.at(0);    // Gets 10
int third = numbers.at(2);    // Gets 30

La 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;
}
quiz iconTestez-vous

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