C++ <array> fonction back

C++ classe conteneur <array>


Dans diverses opérations sur un tableau,backest une fonction très pratique, utilisée pourobtenir le dernier élément。

backest une fonction membre des classes de conteneurs, utilisée pourrenvoyer le dernier élément du conteneur. Elle est équivalente àat(size()-1)ouoperator[](size()-1), mais avec une sémantique plus claire.

backfournit un moyen intuitif d'accéder au dernier élément d'un conteneur.

Définitions de mots: backsignifie "back", c'est-à-dire obtenir le dernier élément (le plus à l'arrière).


Syntaxe de base et paramètres

backest une fonction membre de la classe conteneur, et son appel est très simple, ne nécessitant aucun paramètre.

Format de syntaxe

reference back();
const_reference back() const;

Description des paramètres

  • Paramètre: Aucun paramètre
    • backn'accepte aucun paramètre.

Description de la fonction

  • Valeur de retour: renvoie le dernier élément du conteneur sous forme deRéférenceSi le conteneur est un conteneur constant, elle renvoie une référence constante.
  • Effet: renvoie le dernier élément du conteneur (indicesize()-1élément à la position).
  • Remarque: le tableau ne peut pas être vide, donc appelerbackIl est sûr.

Exemple

Maîtrisons cela en profondeur à travers une série d'exemples.backUtilisation.

Exemple 1 : Utilisation de base - obtenir le dernier élément

Exemple

#include <iostream>
#include <array>

int main() {
    // 1. Créer un tableau et l'initialiser
    std::array<int, 5> numbers = {10, 20, 30, 40, 50};

    std::cout << "La taille du tableau est : " << numbers.size() << std::endl;

    // 2. Utilisez back() pour obtenir le dernier élément
    std::cout << "Le dernier élément (back) : " << numbers.back() << std::endl;
    std::cout << "En utilisant at(size()-1) : " << numbers.at(numbers.size() - 1) << std::endl;
    std::cout << "En utilisant [size()-1] : " << numbers[numbers.size() - 1] << std::endl;

    return 0;
}

Sortie attendue :

array的大小是: 5
最后一个元素 (back): 50
使用 at(size()-1): 50
使用 [size()-1]: 50

Analyse du code :

  1. numbers.back()renvoie le dernier élément50。
  2. Il etnumbers.at(numbers.size()-1)etnumbers[numbers.size()-1]retourne la même valeur, mais avec une sémantique plus explicite.

Exemple 2 : Modification de la valeur du dernier élément

backElle retourne une référence, elle peut donc être utilisée pour modifier la valeur de l'élément.

Exemple

#include <iostream>
#include <array>
#include <string>

int main() {
    std::array<std::string, 3> tasks = {"Apprendre le C++", "Faire les devoirs", "Lire la documentation"};

    std::cout << "Avant modification, la dernière tâche : " << tasks.back() << std::endl;

    // Utiliser back() pour obtenir une référence et modifier l'élément
    tasks.back() = "Terminer";

    std::cout << "Après modification, la dernière tâche : " << tasks.back() << std::endl;

    return 0;
}

Sortie attendue :

Before modification, the last task: Read the documentation
After modification, the last task: Complete the project

Analyse du code :

  • tasks.back() = "完成项目";La valeur du dernier élément est modifiée via la référence.
  • back()renvoie une référence lvalue modifiable.

Exemple 3 : Utilisation de back avec sort pour obtenir les valeurs max/min

Après le tri,back()Renvoie la valeur maximale.

Exemple

#include <iostream>
#include <array>
#include <algorithm>

int main() {
    std::array<int, 5> numbers = {30, 10, 50, 20, 40};

    std::cout << "Avant le tri : ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // Trier
    std::sort(numbers.begin(), numbers.end());

    std::cout << "Après tri : ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    std::cout << Valeur minimale (front) : << numbers.front() << std::endl;
    std::cout << Valeur maximale (back) : << numbers.back() << std::endl;

    return 0;
}

Sortie attendue :

排序前: 30 10 50 20 40
排序后: 10 20 30 40 50
最小值 (front): 10
最大值 (back): 50

Analyse du code :

  • Après le tri,front()Renvoie la valeur minimale,back()Renvoie la valeur maximale.
  • C'est une façon simple d'obtenir la valeur maximale/minimale.

C++ classe conteneur <array>

autres extensions