std::flat_set<Key,Compare,KeyContainer>:: erase
From cppreference.net
|
iterator erase
(
iterator pos
)
;
|
(1) |
(desde C++23)
(constexpr desde C++26) |
|
iterator erase
(
const_iterator pos
)
;
|
(2) |
(desde C++23)
(constexpr desde C++26) |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(3) |
(desde C++23)
(constexpr desde C++26) |
|
size_type erase
(
const
Key
&
key
)
;
|
(4) |
(desde C++23)
(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.
1,2)
Elimina el elemento en la posición
pos
.
3)
Elimina los elementos en el rango
[
first
,
last
)
, que debe ser un rango válido en
*
this
.
4)
Elimina el elemento (si existe) con la clave equivalente a
key
.
5)
Elimina todos los elementos cuya clave sea equivalente al valor
x
.
Esta sobrecarga participa en la resolución de sobrecarga solo si
Compare
es
transparente
, y ni
iterator
ni
const_iterator
son convertibles implícitamente desde
K
. Permite llamar a esta función sin construir una instancia de
Key
.
| La información sobre la invalidación de iteradores está copiada de aquí |
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 .
Contenidos |
Parámetros
| pos | - | iterador al elemento a eliminar |
| first, last | - | el par de iteradores que definen el rango de elementos a eliminar |
| key | - | valor clave de los elementos a eliminar |
| x | - | un valor de cualquier tipo que puede compararse transparentemente con una clave que denota los elementos a eliminar |
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
Depends on underlying container. Typically linear.|
Esta sección está incompleta
Razón: requiere revisión |
Ejemplo
Ejecutar este código
#include <flat_set> #include <iostream> int main() { std::flat_set<int> c = {1, 2, 3, 4, 1, 2, 3, 4}; auto print = [&c] { std::cout << "c = { "; for (int n : c) std::cout << n << ' '; std::cout << "}\n"; }; print(); std::cout << "Erase all odd numbers:\n"; for (auto it = c.begin(); it != c.end();) { if (*it % 2 != 0) it = c.erase(it); else ++it; } print(); std::cout << "Erase 1, erased count: " << c.erase(1) << '\n'; std::cout << "Erase 2, erased count: " << c.erase(2) << '\n'; std::cout << "Erase 2, erased count: " << c.erase(2) << '\n'; print(); }
Salida:
c = { 1 2 3 4 }
Erase all odd numbers:
c = { 2 4 }
Erase 1, erased count: 0
Erase 2, erased count: 1
Erase 2, erased count: 0
c = { 4 }
Véase también
|
borra el contenido
(función miembro pública) |