0Pricing
C++ Academy · Leçon

Bases de std::vector : push_back, size, capacity

Créer, agrandir et examiner des vecteurs, et comprendre la différence entre capacité et taille

Bases de std::vector : push_back, size, capacity est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.

Pourquoi std::vector ?

std::vector est le conteneur par défaut en C++. Il grandit automatiquement, gère la mémoire à votre place et offre un accès aléatoire en O(1). Utilisez-le sauf si vous avez une raison précise de ne pas le faire.

Inclure et déclarer

Incluez <vector> et déclarez le vecteur en indiquant le type des éléments comme paramètre de modèle.

#include <vector>

std::vector<int> nums;
std::vector<std::string> names = {"Ada", "Bob"};

Formes d’initialisation

Plusieurs façons de commencer un vecteur :

std::vector<int> a;              // empty
std::vector<int> b(5);           // 5 zeros
std::vector<int> c(5, 42);       // 5 copies of 42
std::vector<int> d{1, 2, 3};     // {1,2,3}
std::vector<int> e(d);           // copy of d

push_back : ajouter à la fin

Ajoutez un élément à la fin avec push_back. O(1) en moyenne amortie.

std::vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);

emplace_back : construire sur place

emplace_back transmet ses arguments au constructeur de l’élément — sans objet temporaire. L’opération est légèrement plus rapide pour les types non triviaux.

std::vector<std::pair<int,int>> v;
v.emplace_back(1, 2);  // constructs a pair in place

size et capacity

Deux concepts distincts :

  • size — nombre d’éléments actuellement stockés
  • capacity — nombre d’éléments que le stockage peut contenir sans réallocation

La capacité augmente par blocs, généralement en doublant.

Examiner size et capacity

Utilisez les fonctions membres correspondantes :

std::vector<int> v;
for (int i = 0; i < 10; ++i) {
    v.push_back(i);
    std::cout << "size=" << v.size() << " capacity=" << v.capacity() << "\n";
}

reserve : préallouer la capacité

Si vous savez combien d’éléments vous allez ajouter, appelez d’abord reserve pour éviter les réallocations répétées.

std::vector<int> v;
v.reserve(1000000);     // preallocate
for (int i = 0; i < 1000000; ++i) v.push_back(i);

shrink_to_fit : libérer la mémoire

Après avoir supprimé de nombreux éléments, libérez la capacité inutilisée avec shrink_to_fit. Le comportement n’est pas garanti : l’implémentation peut conserver de l’espace supplémentaire.

Accéder aux éléments

Quatre façons :

  • v[i] — sans vérification
  • v.at(i) — vérifie les limites et lève une exception
  • v.front() — premier élément
  • v.back() — dernier élément

Vider et effacer

Vérifiez si le vecteur est vide avec empty(). Supprimez tous les éléments avec clear() — la capacité reste inchangée.

Vérification rapide

Pourquoi push_back s’exécute-t-il en temps O(1) en moyenne amortie ?

Récapitulatif

std::vector est un tableau extensible offrant un accès aléatoire en O(1). size() correspond au nombre d’éléments ; capacity() correspond à la taille du stockage. reserve() évite une réallocation lorsque la taille finale est connue.

Questions Fréquemment Posées

La leçon « Bases de std::vector : push_back, size, capacity » est-elle gratuite ?

Oui — le texte complet de « Bases de std::vector : push_back, size, capacity » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Bases de std::vector : push_back, size, capacity » ?

Créer, agrandir et examiner des vecteurs, et comprendre la différence entre capacité et taille Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C++ Academy ?

Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Bases de std::vector : push_back, size, capacity » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?

Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Bases de std::vector : push_back, size, capacity
  2. Parcourir les vecteurs : index, range-for et itérateurs
  3. Modifier les vecteurs : insert, erase, clear
  4. Vector, std::array ou tableau C
← Retour à C++ Academy