std::flat_multiset<Key,Compare,KeyContainer>::erase
De cppreference.com
< cpp | container | flat multiset
(1) | ||
iterator erase( iterator pos ); | (desde C++11) | |
iterator erase( const_iterator pos ); | (desde C++11) | |
(2) | ||
iterator erase( const_iterator first, const_iterator last ); | (desde C++11) | |
size_type erase(const Key& key ); | (3) | (desde {std}) |
template<class K > size_type erase( K&& x ); | (4) | (desde C++23) |
Borra del contenedor los elementos especificados.
1) Borra el elemento en la posición
pos
. 2) Borra los elementos en el rango
[first; last)
, que debe ser un rango válido en *this.3) Borra todos los elementos con la clave equivalente a
key
.4) Borra todos los elementos con la clave que se compara equivalente al valor
x
. Esta sobrecarga solo participa en la resolución de sobrecargas si Hash::is_transparent y KeyEqual::is_transparent son válidos y cada uno denota un tipo, y ni iterator
ni const_iterator
son convertibles implícitamente de K
. Esto supone que tal Hash
es invocable con el tipo K
y Key
, y que el KeyEqual
es transparente, lo que, en conjunto, permite llamar a esta función sin construir un ejemplar de Key
.La información sobre la invalidación del iterador se copia de aquí
El iterador pos
debe ser válido y desreferenciable. Es por esto que el iterador end() (que es válido, pero no es desreferenciable) no puede usarse como un valor para pos
.
Contenido |
[editar]Parámetros
pos | - | Iterador al elemento a borrar. |
first, last | - | Rango de elementos a borrar. |
key | - | Valor de la clave de los elementos a borrar. |
x | - | Un valor de cualquier tipo que se pueda comparar de forma transparente con una clave que indique los elementos a borrar. |
[editar]Valor de retorno
1-2) Iterador que sigue al último elemento borrado.
3,4) Número de elementos borrados.
[editar]Excepciones
1,2) No lanza nada.
3,4) Cualquier excepción lanzada por el objeto
Hash
y KeyEqual
.[editar]Complejidad
Dada una instancia c
de tipo flat_multiset
:
1) Caso promedio: constante en el peor de los casos: c.size()
3) Caso promedio: c.count(key), en el peor de los casos: c.size().
4) Caso promedio: c.count(x), en el peor de los casos: c.size().
[editar]Ejemplo
[editar]Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
---|---|---|---|
LWG 2059 | C++11 | La sobrecarga para un const_iterator introdujo una nueva ambigüedad. | Se agregó la sobrecarga para iterator . |
[editar]Véase también
(C++23) | Borra el contenido. (función miembro pública) |