Le Guide Complet de vector::size() en C++ STL (Standard Template Library)

Le Guide Complet de vector::size() en C++ STL (Standard Template Library)

Amine Abidi - Lead Software Engineer C++/Qt - Co-fondateur PointerLab

Publié par Amine Abidi - Lead Software Engineer C++/Qt - Co-fondateur PointerLab

Size d'un Vector en C++

La fonction vector::size() est une méthode essentielle de la bibliothèque standard C++ (STL) pour travailler avec les vecteurs. Elle permet de connaître la taille actuelle d'un vecteur, c'est-à-dire le nombre d'éléments qu'il contient. Que vous soyez débutant ou développeur expérimenté, comprendre comment utiliser size() est crucial pour manipuler efficacement les vecteurs.

Dans cet article, nous répondrons aux questions suivantes :

  • Comment obtenir la taille d'un vecteur en C++ ?
  • Quelle est la taille maximale d'un vecteur en C++ ?
  • Est-ce que size() est une opération O(1) ?
  • Comment initialiser un vecteur avec une taille spécifique ?
  • Comment réduire ou définir la taille d'un vecteur ?

💡 Consultez notre article Vector insert() en C++ pour insérer des éléments dans un vecteur.


Qu'est-ce que vector::size() en C++ ?

La méthode size() retourne le nombre d'éléments actuellement stockés dans un vecteur. Elle est définie dans l'en-tête <vector> et fait partie de la STL.

Prototype :

size_type size() const noexcept;
  • Retourne : Un entier non signé (size_type) représentant le nombre d'éléments dans le vecteur.
  • Complexité : O(1), car elle accède directement à une variable interne.

Comment obtenir la taille d'un vecteur en C++ ?

Pour obtenir la taille d'un vecteur, utilisez simplement la méthode size().

Exemple :

#include <iostream>
#include <vector>

int main() {
    std::vector<int> nombres = {1, 2, 3, 4, 5};
    std::cout << "Taille du vecteur : " << nombres.size() << std::endl;
    return 0;
}

Sortie :

Taille du vecteur : 5

Comment initialiser un vecteur avec une taille spécifique ?

Vous pouvez initialiser un vecteur avec une taille donnée en utilisant son constructeur.

Exemple :

#include <iostream>
#include <vector>

int main() {
    std::vector<int> nombres(10, 0); // Vecteur de taille 10, initialisé avec des zéros
    std::cout << "Taille initiale : " << nombres.size() << std::endl;
    return 0;
}

Sortie :

Taille initiale : 10

Quelle est la taille maximale d'un vecteur en C++ ?

La taille maximale d'un vecteur dépend de la mémoire disponible et de l'implémentation du compilateur. Vous pouvez utiliser la méthode max_size() pour obtenir cette limite.

Exemple :

#include <iostream>
#include <vector>

int main() {
    std::vector<int> nombres;
    std::cout << "Taille maximale : " << nombres.max_size() << std::endl;
    return 0;
}

Comment réduire ou définir la taille d'un vecteur ?

Pour réduire la taille d'un vecteur, utilisez la méthode resize().

Exemple :

#include <iostream>
#include <vector>

int main() {
    std::vector<int> nombres = {1, 2, 3, 4, 5};
    nombres.resize(3); // Réduit la taille à 3
    std::cout << "Nouvelle taille : " << nombres.size() << std::endl;
    return 0;
}

Sortie :

Nouvelle taille : 3

Est-ce que vector::size() est une opération O(1) ?

Oui, size() est une opération O(1). Elle accède directement à une variable interne du vecteur, ce qui la rend très rapide.


Comment afficher la taille d'un vecteur en C++ ?

Pour afficher la taille d'un vecteur, combinez size() avec std::cout.

Exemple :

#include <iostream>
#include <vector>

int main() {
    std::vector<int> nombres = {1, 2, 3};
    std::cout << "Taille du vecteur : " << nombres.size() << std::endl;
    return 0;
}

Bonnes pratiques avec vector::size()

  • Vérifiez toujours la taille avant d'accéder aux éléments : Utilisez size() pour éviter les dépassements de limites.
  • Préférez size() à des calculs manuels : Elle est optimisée et garantit une complexité O(1).
  • Combinez avec resize() pour ajuster la taille : Cela permet de gérer dynamiquement la mémoire.

Ressources complémentaires

Pour approfondir vos connaissances sur les vecteurs en C++, consultez :


Quiz : Testez vos connaissances

  1. Que retourne la méthode vector::size() ?
    a) La capacité maximale du vecteur
    b) Le nombre d'éléments actuellement dans le vecteur
    c) La taille en mémoire du vecteur

  2. Quelle est la complexité de vector::size() ?
    a) O(n)
    b) O(log n)
    c) O(1)

  3. Comment réduire la taille d'un vecteur à 5 éléments ?
    a) vecteur.shrink_to_fit(5);
    b) vecteur.resize(5);
    c) vecteur.size(5);

  4. Quelle méthode permet de connaître la taille maximale d'un vecteur ?
    a) size()
    b) capacity()
    c) max_size()


Réponses au Quiz

  1. Que retourne la méthode vector::size() ?
    ✅ Réponse : b) Le nombre d'éléments actuellement dans le vecteur

  2. Quelle est la complexité de vector::size() ?
    ✅ Réponse : c) O(1)

  3. Comment réduire la taille d'un vecteur à 5 éléments ?
    ✅ Réponse : b) vecteur.resize(5);

  4. Quelle méthode permet de connaître la taille maximale d'un vecteur ?
    ✅ Réponse : c) max_size()


Conclusion

La méthode vector::size() est un outil indispensable pour manipuler les vecteurs en C++. Elle permet de connaître la taille actuelle d'un vecteur avec une complexité O(1), ce qui la rend rapide et efficace. En combinant size() avec d'autres méthodes comme resize() ou push_back(), vous pouvez gérer dynamiquement vos données et optimiser vos programmes.

Maîtriser vector::size() est une étape clé pour devenir un expert en C++ et en STL. Continuez à explorer les fonctionnalités des vecteurs pour tirer le meilleur parti de cette structure de données puissante.

Découvrez l'ensemble de notre blog sur le C++

Rejoignez la communauté C++ 🇫🇷 sur Discord !

Un espace convivial pour échanger et apprendre ensemble.