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
.
| Les informations sur l'invalidation des itérateurs sont copiées depuis ici |
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.|
Cette section est incomplète
Raison : révision requise |
Exemple
Exécuter ce code
#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) |