Espacios de nombres
Variantes
Acciones

std::flat_multiset<Key,Compare,KeyContainer>::erase

De cppreference.com
 
 
 
 
(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()
2) Caso promedio: std::distance(first, last), 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)[editar]
close