std::map<Key,T,Compare,Allocator>:: erase
|
iterator erase
(
iterator pos
)
;
|
(1) | (constexpr desde C++26) |
|
iterator erase
(
const_iterator pos
)
;
|
(2) |
(desde C++11)
(constexpr desde C++26) |
| (3) | ||
|
iterator erase
(
iterator first, iterator last
)
;
|
(hasta C++11) | |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(desde C++11)
(constexpr desde C++26) |
|
|
size_type erase
(
const
Key
&
key
)
;
|
(4) | (constexpr desde C++26) |
|
template
<
class
K
>
size_type erase ( K && x ) ; |
(5) |
(desde C++23)
(constexpr desde C++26) |
Elimina los elementos especificados del contenedor.
[
first
,
last
)
, que debe ser un rango válido en
*
this
.
Compare
es
transparent
, y ni
iterator
ni
const_iterator
son convertibles implícitamente desde
K
. Permite llamar a esta función sin construir una instancia de
Key
.
Las referencias e iteradores a los elementos eliminados quedan invalidados. Otras referencias e iteradores no se ven afectados.
El iterador pos debe ser dereferenciable. Por lo tanto, el iterador end() (que es válido, pero no es dereferenciable) no puede usarse como valor para pos .
Contenido
Parámetros
Valor de retorno
1-3)
Iterador que sigue al último elemento eliminado.
4)
Número de elementos eliminados (0 o 1).
5)
Número de elementos eliminados.
Excepciones
1-3)
No lanza nada.
4,5)
Cualquier excepción lanzada por el objeto
Compare
.
Complejidad
Dada una instancia
c
de
1,2)
Constante amortizada.
3)
log
(
c.
size
(
)
)
+
std::
distance
(
first, last
)
4)
log
(
c.
size
(
)
)
+
c.
count
(
key
)
5)
log
(
c.
size
(
)
)
+
c.
count
(
x
)
Notas
EjemploEjecutar este código #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';
}
Salida: two four six
Informes de defectosLos siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
Véase también
|