Namespaces
Variants

std::flat_set<Key,Compare,KeyContainer>:: erase

From cppreference.net

iterator erase ( iterator pos ) ;
(1) (depuis C++23)
(constexpr depuis C++26)
iterator erase ( const_iterator pos ) ;
(2) (depuis C++23)
(constexpr depuis C++26)
iterator erase ( const_iterator first, const_iterator last ) ;
(3) (depuis C++23)
(constexpr depuis C++26)
size_type erase ( const Key & key ) ;
(4) (depuis C++23)
(constexpr depuis C++26)
template < class K >
size_type erase ( K && x ) ;
(5) (depuis C++23)
(constexpr depuis C++26)

Supprime les éléments spécifiés du conteneur.

1,2) Supprime l'élément à la position pos .
3) Supprime les éléments dans l'intervalle [ first , last ) , qui doit être un intervalle valide dans * this .
4) Supprime l'élément (s'il existe) avec la clé équivalente à key .
5) Supprime tous les éléments dont la clé est équivalente à la valeur x .
Cette surcharge participe à la résolution de surcharge seulement si Compare est transparent , et si ni iterator ni const_iterator ne sont implicitement convertibles à partir de K . Cela permet d'appeler cette fonction sans construire une instance de Key .

L'itérateur pos doit être déréférençable. Ainsi l'itérateur end() (qui est valide, mais n'est pas déréférençable) ne peut pas être utilisé comme valeur pour pos .

Table des matières

Paramètres

pos - itérateur vers l'élément à supprimer
first, last - la paire d'itérateurs définissant la plage des éléments à supprimer
key - valeur clé des éléments à supprimer
x - une valeur de tout type pouvant être comparée de manière transparente avec une clé désignant les éléments à supprimer

Valeur de retour

1-3) Itérateur suivant le dernier élément supprimé.
4) Nombre d'éléments supprimés (0 ou 1).
5) Nombre d'éléments supprimés.

Exceptions

1-3) Ne lance rien.
4,5) Toute exception levée par l'objet Compare .

Complexité

Depends on underlying container. Typically linear.

Exemple

#include <flat_set>
#include <iostream>
int main()
{
    std::flat_set<int> c = {1, 2, 3, 4, 1, 2, 3, 4};
    auto print = [&c]
    {
        std::cout << "c = { ";
        for (int n : c)
            std::cout << n << ' ';
        std::cout << "}\n";
    };
    print();
    std::cout << "Effacer tous les nombres impairs:\n";
    for (auto it = c.begin(); it != c.end();)
    {
        if (*it % 2 != 0)
            it = c.erase(it);
        else
            ++it;
    }
    print();
    std::cout << "Effacer 1, nombre d'éléments effacés : " << c.erase(1) << '\n';
    std::cout << "Effacer 2, nombre d'éléments effacés : " << c.erase(2) << '\n';
    std::cout << "Effacer 2, nombre d'éléments effacés : " << c.erase(2) << '\n';
    print();
}

Sortie :

c = { 1 2 3 4 }
Erase all odd numbers:
c = { 2 4 }
Erase 1, erased count: 0
Erase 2, erased count: 1
Erase 2, erased count: 0
c = { 4 }

Voir aussi

efface le contenu
(fonction membre publique)