C++ <array> fonction size

C++ classe conteneur <array>


sizeC'est l'une des fonctions les plus couramment utilisées et fondamentales d'array, utilisée pourObtenir le nombre d'éléments dans le conteneur。

sizeest une fonction membre des classes de conteneurs, utilisée pourretourner le nombre d'éléments actuellement contenus dans le conteneur. Contrairement à vector, la taille d'array est fixe et déterminée au moment de la compilation.

sizeC'est la fonction la plus fréquemment utilisée lors de la manipulation d'array, utilisée dans des scénarios tels que le parcours en boucle et la vérification des limites.

Définitions de mots: sizesignifie "size", indiquant le nombre d'éléments dans le conteneur.


Syntaxe de base et paramètres

sizeC'est une fonction membre de la classe conteneur, et l'appeler ne nécessite aucun argument.

Format de syntaxe

constexpr size_type size() const noexcept;

Description des paramètres

  • Paramètre: Aucun paramètre
    • sizene prend aucun argument.

Description de la fonction

  • Retour: renvoiesize_typeType (généralementsize_t), représentant le nombre d'éléments dans le conteneur.
  • Effet: renvoie un entier non négatif représentant le nombre d'éléments stockés de manière fixe dans le conteneur.
  • Remarque: size()Il renvoie une constante de compilation (constexpr), qui peut être utilisée au moment de la compilation.

Exemple

Maîtrisons à fond à travers une série d'exemplessizeUtilisation.

Exemple 1 : utilisation de base - obtenir le nombre d'éléments

Exemple

#include <iostream>
#include <array>

int main() {
    // tableaux de différentes tailles
    std::array<int, 3> small = {1, 2, 3};
    std::array<int, 5> medium = {1, 2, 3, 4, 5};
    std::array<int, 10> large = {};

    std::cout << "taille du petit tableau : " << small.size() << std::endl;
    std::cout << "taille du tableau moyen : " << medium.size() << std::endl;
    std::cout << "taille du grand tableau : " << large.size() << std::endl;

    return 0;
}

Sortie attendue :

small array 大小: 3
medium array 大小: 5
large array 大小: 10

Analyse du code :

  1. La taille du tableau est déterminée au moment de la compilation et spécifiée par le paramètre de modèle.
  2. size()Ce qui est renvoyé est cette valeur déterminée à la compilation.

Exemple 2 : Utilisation de size() dans une boucle

size()Le plus souvent utilisé pour contrôler l'itération d'une boucle.

Exemple

#include <iostream>
#include <array>

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

    // Utiliser size() pour contrôler la boucle
    std::cout << "Parcourir tous les éléments : ";
    for(size_t i = 0; i < numbers.size(); ++i) {
        std::cout << numbers[i] << " ";
    }
    std::cout << std::endl;

    // Utiliser size() pour obtenir la limite du parcours inverse
    std::cout << "Parcours inverse : ";
    for(size_t i = numbers.size(); i > 0; --i) {
        std::cout << numbers[i - 1] << " ";
    }
    std::cout << std::endl;

    return 0;
}

Sortie attendue :

遍历所有元素: 10 20 30 40 50
反向遍历: 50 40 30 20 10

Analyse du code :

  • numbers.size()renvoie 5, la condition de bouclei < numbers.size()Assurez-vous qu'il ne sorte pas des limites.
  • Lors d'un parcours en sens inverse, à partir desize()commence à décrémenter jusqu'à 1, puis accède à[i-1]。
  • Exemple 3 : Utilisation de constexpr size

    du tableausize()C'est constexpr et cela peut être utilisé au moment de la compilation.

    Exemple

    #include <iostream>
    #include <array>

    // Fonction template : créer un tableau d'une taille donnée
    template<size_t N>
    void printSize(const std::array<int, N>& arr) {
        // size() peut être utilisée là où des constantes de compilation sont nécessaires
        constexpr size_t s = arr.size();
        std::cout << "Array size: " << s << std::endl;
    }

    int main() {
        std::array<int, 5> arr = {1, 2, 3, 4, 5};
        printSize(arr);

        return 0;
    }

    Analyse du code :

    • du tableausize()Ouiconstexpr, peut être évalué au moment de la compilation.
    • Ceci est différent de vector, où la taille de vectorsize()n'est pas une constante de compilation.

    C++ classe conteneur <array>

    autres extensions