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 dpush_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 placesize 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érificationv.at(i)— vérifie les limites et lève une exceptionv.front()— premier élémentv.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
- Bases de std::vector : push_back, size, capacity
- Parcourir les vecteurs : index, range-for et itérateurs
- Modifier les vecteurs : insert, erase, clear
- Vector, std::array ou tableau C