std::deque<T,Allocator>:: erase
| (1) | ||
|
iterator erase
(
iterator pos
)
;
|
(jusqu'en C++11) | |
|
iterator erase
(
const_iterator pos
)
;
|
(depuis C++11)
(constexpr depuis C++26) |
|
| (2) | ||
|
iterator erase
(
iterator first, iterator last
)
;
|
(jusqu'en C++11) | |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(depuis C++11)
(constexpr depuis C++26) |
|
Efface les éléments spécifiés du conteneur.
[
first
,
last
)
.
Tous les itérateurs et références sont invalidés, sauf si les éléments effacés se trouvent à la fin ou au début du conteneur, auquel cas seuls les itérateurs et références vers les éléments effacés sont invalidés. L'itérateur
end()
est également invalidé, sauf si les éléments effacés se trouvent au début du conteneur et que le dernier élément n'est pas effacé.
L'itérateur pos doit être valide et déréférençable. Par conséquent, l'itérateur end() (qui est valide mais non déréférençable) ne peut pas être utilisé comme valeur pour pos .
L'itérateur first n'a pas besoin d'être déréférençable si first == last : effacer une plage vide est une opération sans effet.
Contenu
Paramètres
Valeur de retourItérateur suivant le dernier élément supprimé.
Si
[
first
,
last
)
est une plage vide, alors
last
est retourné.
Exceptions
Ne lance pas sauf si une exception est levée par l'opérateur d'affectation de
Complexité
Linéaire : le nombre d'appels au destructeur de
RemarquesLorsque les éléments d'un conteneur doivent être effacés en fonction d'un prédicat, plutôt que d'itérer le conteneur et d'appeler unaire Exemple
Exécuter ce code
#include <deque> #include <iostream> void print_container(const std::deque<int>& c) { for (int i : c) std::cout << i << ' '; std::cout << '\n'; } int main() { std::deque<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; print_container(c); c.erase(c.begin()); print_container(c); c.erase(c.begin() + 2, c.begin() + 5); print_container(c); // Effacer tous les nombres pairs for (std::deque<int>::iterator it = c.begin(); it != c.end();) { if (*it % 2 == 0) it = c.erase(it); else ++it; } print_container(c); } Sortie : 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 6 7 8 9 1 7 9 Rapports de défautsLes rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
Voir aussi
| ||||||||||||||||||||||||||||