Obtenir la longueur du tableau en C++

  1. Utilisez la fonction size() pour trouver la longueur d’un tableau
  2. Utiliser une fonction implémentée sur mesure pour obtenir la longueur du tableau
  3. Utiliser la fonction capacity pour obtenir la longueur du tableau pour l’espace mémoire actuellement alloué

Cet article présente plusieurs méthodes pour obtenir la longueur d’un tableau en C++.

Utilisez la fonction size() pour trouver la longueur d’un tableau

La longueur des tableaux est la propriété essentielle qui est souvent récupérée par les programmeurs. En C++, nous avons deux types de conteneurs de tableaux : à longueur fixe - std::array et à longueur variable - std::vector. Comme les deux classes ont la fonction intégrée size et qu’il est plus probable d’extraire le nombre d’éléments pour le tableau variable, nous avons implémenté l’exemple de code suivant avec un conteneur vector.

Notez que le conteneur vector est initialisé avec des valeurs arbitraires int au moment de la déclaration, et nous obtenons alors la longueur de l’objet.

#include <iostream>
#include <string>
#include <vector>

using std::cout;
using std::endl;
using std::vector;

int main(){
    vector<int> i_vec { 1, 2, 12, 3, 32, 23, 53, 43 };

    auto size_of_vec = i_vec.size();
    cout << "Number of elements in i_vec = " << size_of_vec << endl;

    return EXIT_SUCCESS;
}

Production :

Number of elements in i_vec = 8

Utiliser une fonction implémentée sur mesure pour obtenir la longueur du tableau

On peut également obtenir la longueur du tableau en utilisant la fonction implémentée sur mesure comme GetElementsSum présentée dans l’exemple de code suivant. Notez cependant que cette méthode n’est pas recommandée puisque la bibliothèque standard implémente déjà une fonction suffisamment performante comme size().

#include <iostream>
#include <string>
#include <vector>

using std::cout;
using std::endl;
using std::vector;

size_t GetElementsSum(vector<int> &vec)
{
    size_t sum = 0;
    for (const auto &item : vec) {
        sum += 1;
    }
    return sum;
}

int main(){
    vector<int> i_vec { 1, 2, 12, 3, 32, 23, 53, 43 };

    auto size_of_vec = GetElementsSum(i_vec);
    cout << "Number of elements in i_vec = " << size_of_vec << endl;

    return EXIT_SUCCESS;
}

Production :

Number of elements in i_vec = 8

Utiliser la fonction capacity pour obtenir la longueur du tableau pour l’espace mémoire actuellement alloué

La capacity est une autre méthode utile pour obtenir le nombre d’éléments que le tableau de variables a actuellement alloué à l’espace. Cela peut sembler peu intuitif au premier abord, mais notez que, à mesure que de nouvelles valeurs sont poussées dans le tableau de variables, il alloue automatiquement de la nouvelle mémoire pour stocker plus d’objets, comme le montre l’exemple suivant :

#include <iostream>
#include <string>
#include <vector>

using std::cout; using std::endl;
using std::vector; using std::string;

int main(){
    vector<int> i_vec { 1, 2, 12, 3, 32, 23, 53, 43 };

    auto cap =i_vec.capacity();
    cout << "Capacity of i_vec = " << cap << endl;

    for (int i = 0; i < 100; ++i) {
        i_vec.push_back(i);
        if (cap != i_vec.capacity()){
            cap = i_vec.capacity();
            cout << "New capacity on iteration - " << i
                << " of size - " << cap << endl;
        }
    }

    return EXIT_SUCCESS;
}

Production :

Capacity of i_vec = 8
New capacity on iteration - 0 of size - 16
New capacity on iteration - 8 of size - 32
New capacity on iteration - 24 of size - 64
New capacity on iteration - 56 of size - 128

Article connexe - C++ Array

  • Comment copier un tableau en C++
  • Comment retourner un tableau en 2D à partir d'une fonction en C++