Fonction front de C++ <array>

C++ classe conteneur <array>


Parmi les différentes opérations sur un tableau,frontest une fonction très simple utilisée pourObtenir le premier élément。

frontest une fonction membre de la classe conteneur, utilisée pourrenvoie le premier élément du conteneur. Elle est équivalente àat(0)ouoperator[](0), mais avec une sémantique plus claire.

frontfournit un moyen intuitif d'accéder au premier élément du conteneur.

Définitions de mots: frontsignifie "front", c'est-à-dire obtenir le premier élément (le plus en avant).


Syntaxe de base et paramètres

frontest une fonction membre de la classe conteneur ; l'appeler est très direct et ne nécessite aucun paramètre.

Format de syntaxe

reference front();
const_reference front() const;

Description des paramètres

  • Paramètre: Aucun paramètre
    • frontne prend aucun paramètre.

Description de la fonction

  • Valeur de retour: renvoie une référence au premier élément du conteneurRéférence. Si le conteneur est un conteneur const, elle renvoie une référence const.
  • Effet: Renvoie le premier élément du conteneur (l'élément à l'indice 0).
  • Remarque: le tableau ne peut pas être vide, donc appelerfrontIl est sûr.

Exemple

Maîtrisons parfaitement à travers une série d'exemples,frontUtilisation.

Exemple 1 : Utilisation de base - Obtenir le premier é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. Utiliser front pour obtenir le premier élément
    std::cout << "Le premier élément (front) : " << numbers.front() << std::endl;
    std::cout << "Utilisez at(0) : "⟦⟧numbers. << numbers.at(0) << std::endl;
    std::cout << "Utilisez [0] : " << numbers[0] << std::endl;

    return 0;
}

Sortie attendue :

array的大小是: 5
第一个元素 (front): 10
使用 at(0): 10
使用 [0]: 10

Analyse du code :

  1. numbers.front()Renvoie le premier élément10。
  2. Il etnumbers.at(0)etnumbers[0]la même valeur, mais avec une sémantique plus claire.

Exemple : Modification de la valeur du premier

frontElle 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> names = {"Alice", "Bob", "Charlie"};

    std⟦⟧cout::cout << "Avant modification, le premier élément : " << names.front() << std::endl;

    // Utilisez front() pour obtenir une référence et modifier l'élément
    names.front() = "Andrew";

    std::cout << "Après modification, le premier élément : " << names.front() << std::endl;

    return 0;
}

Sortie attendue :

修改前,第一个元素: Alice
修改后,第一个元素: Andrew

Analyse du code :

  • names.front() = "Andrew";La valeur du premier élément a été modifiée via la référence.
  • front()renvoie une référence lvalue modifiable.

Exemple 3 : Utilisation de front pour implémenter le début d'une file

frontIl peut être utilisé pour implémenter des structures de données similaires à une file.

Exemple

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

// File d'attente simple à taille fixe (implémentée avec un tableau)
class FixedQueue {
private:
    std::array<std::string, 100> data;
    size_t frontIndex = 0;
    size_t backIndex = 0;
    size_t count = 0;

public:
    // Enfiler
    bool enqueue(const std::string& item) {
        if(count >= 100) return false;
        data[backIndex] = item;
        backIndex = (backIndex + 1) % 100;
        ++count;
        return true;
    }

    // Obtenir l'élément de tête
    std::string front() const {
        return data[frontIndex];
    }

    // Vérifier si la file est vide
    bool empty() const {
        return count == 0;
    }

    // Obtenir la taille de la file
    size_t size() const {
        return count;
    }
};

int main() {
    FixedQueue q;

    q.enqueue("Utilisateur A");
    q.enqueue("Utilisateur B");
    q.enqueue("Utilisateur C");

    std::cout << "Taille de la file : " << q.size() << std::endl;

    while(!q.empty()) {
        std::cout << "Traitement : " << q.front() << std::endl;
    }

    return 0;
}

Sortie attendue :

队列大小: 3
处理: 用户A
处理: 用户B
处理: 用户C

Analyse du code :

  • front()Utilisé pour obtenir l'élément de tête (l'élément en attente de traitement).
  • Cet exemple montre comment utiliserfrontImplémente une file d'attente premier entré, premier sorti (FIFO).

C++ classe conteneur <array>

autres extensions