std::map<Key,T,Compare,Allocator>:: erase
|
iterator erase
(
iterator pos
)
;
|
(1) | (constexpr depuis C++26) |
|
iterator erase
(
const_iterator pos
)
;
|
(2) |
(depuis C++11)
(constexpr depuis C++26) |
| (3) | ||
|
iterator erase
(
iterator first, iterator last
)
;
|
(jusqu'à C++11) | |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(depuis C++11)
(constexpr depuis C++26) |
|
|
size_type erase
(
const
Key
&
key
)
;
|
(4) | (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.
[
first
,
last
)
, qui doit être un intervalle valide dans
*
this
.
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 références et itérateurs vers les éléments supprimés sont invalidés. Les autres références et itérateurs ne sont pas affectés.
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 .
Sommaire
Paramètres
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é
Étant donné une instance
c
de
1,2)
Amorti constant.
3)
log
(
c.
size
(
)
)
+
std::
distance
(
first, last
)
4)
log
(
c.
size
(
)
)
+
c.
count
(
key
)
5)
log
(
c.
size
(
)
)
+
c.
count
(
x
)
Notes
ExempleExécuter ce code #include <map>
#include <iostream>
int main()
{
std::map<int, std::string> map =
{
{1, "one"}, {2, "two"}, {3, "three"},
{4, "four"}, {5, "five"}, {6, "six"}
};
// erase all odd keys from map
for (auto it = map.begin(); it != map.end();)
{
if (it->first % 2 != 0)
it = map.erase(it);
else
++it;
}
for (const auto& pair : map)
std::cout << pair.second << ' ';
std::cout << '\n';
}
Sortie : two four six
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
|