std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>:: erase
From fr.cppreference.net
<
cpp
|
container
|
flat multimap
|
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. L'ordre des éléments équivalents restants est préservé.
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 tous les éléments dont la clé est é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 |
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 .
SommaireParamètres
Valeur de retour
1-3)
Itérateur suivant le dernier élément supprimé.
4)
Nombre d'éléments supprimés.
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 containers. Typically linear.
ExempleExécutez ce code #include <flat_map>
#include <iostream>
int main()
{
std::flat_multimap<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 :\n two four six
Voir aussi
|