0Pricing
C++ Academy · Leçon

Modifier les vecteurs : insert, erase, clear

Insérer, supprimer et vider des éléments en tenant compte des règles d’invalidation des itérateurs

Modifier les vecteurs : insert, erase, clear est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 3 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.

Insérer à la fin

L’insertion la plus rapide : push_back ou emplace_back — les deux ajoutent l’élément à la fin en O(1) amorti.

Insérer à une position arbitraire

insert(pos, value) décale vers la droite tout ce qui se trouve après pos. Opération en O(n).

std::vector<int> v = {1, 2, 4, 5};
v.insert(v.begin() + 2, 3);   // {1, 2, 3, 4, 5}

Insérer une plage

Insérez en une seule fois tous les éléments d’un autre conteneur.

std::vector<int> v = {1, 5};
std::vector<int> mid = {2, 3, 4};
v.insert(v.begin() + 1, mid.begin(), mid.end());
// {1, 2, 3, 4, 5}

Insérer plusieurs copies

Insérez n copies de la même valeur.

std::vector<int> v = {1, 4};
v.insert(v.begin() + 1, 2, 99);   // {1, 99, 99, 4}

Effacer un élément

erase(pos) supprime l’élément situé à l’itérateur et décale vers la gauche tout ce qui le suit. Renvoie un itérateur vers l’élément suivant.

std::vector<int> v = {1, 2, 3, 4};
v.erase(v.begin() + 1);   // {1, 3, 4}

Effacer une plage

Supprimez tous les éléments de la plage semi-ouverte [first, last).

v.erase(v.begin() + 1, v.begin() + 3);

L’idiome erase-remove

Pour supprimer tous les éléments correspondant à un prédicat sans laisser de trous, combinez std::remove_if et erase.

#include <algorithm>
v.erase(
    std::remove_if(v.begin(), v.end(), [](int x) { return x < 0; }),
    v.end()
);

C++20 std::erase et std::erase_if

C++20 a ajouté des fonctions libres qui encapsulent l’idiome erase-remove.

std::erase(v, 0);                    // remove all 0s
std::erase_if(v, [](int x) { return x < 0; });

clear : supprimer tous les éléments

clear() supprime tous les éléments, mais conserve la capacité. C’est utile si vous prévoyez de remplir à nouveau le vecteur.

pop_back : supprimer le dernier élément

Suppression du dernier élément en O(1). La fonction ne renvoie aucune valeur — récupérez l’élément avant si vous en avez besoin.

int last = v.back();
v.pop_back();

Règles d’invalidation des itérateurs

insert et erase invalident chaque itérateur situé à partir de la position modifiée. Erase renvoie l’itérateur valide suivant, ce qui vous permet de continuer l’itération.

Vérification rapide

Que fait std::remove_if à lui seul sur un vecteur ?

Récapitulatif

insert et erase fonctionnent à des positions arbitraires en O(n). Utilisez push_back/pop_back pour obtenir O(1) à la fin. Appliquez l’idiome erase-remove (ou std::erase_if de C++20) pour supprimer les éléments correspondants.

Questions Fréquemment Posées

La leçon « Modifier les vecteurs : insert, erase, clear » est-elle gratuite ?

Oui — le texte complet de « Modifier les vecteurs : insert, erase, clear » 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 « Modifier les vecteurs : insert, erase, clear » ?

Insérer, supprimer et vider des éléments en tenant compte des règles d’invalidation des itérateurs 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 3 sur 4.

Combien de temps prend la leçon « Modifier les vecteurs : insert, erase, clear » ?

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