std::deque<T,Allocator>:: erase
| (1) | ||
|
iterator erase
(
iterator pos
)
;
|
(hasta C++11) | |
|
iterator erase
(
const_iterator pos
)
;
|
(desde C++11)
(constexpr desde C++26) |
|
| (2) | ||
|
iterator erase
(
iterator first, iterator last
)
;
|
(hasta C++11) | |
|
iterator erase
(
const_iterator first, const_iterator last
)
;
|
(desde C++11)
(constexpr desde C++26) |
|
Borra los elementos especificados del contenedor.
[
first
,
last
)
.
Todos los iteradores y referencias quedan invalidados, a menos que los elementos borrados estén al final o al principio del contenedor, en cuyo caso solo se invalidan los iteradores y referencias a los elementos borrados. El
end()
iterador también queda invalidado a menos que los elementos borrados estén al principio del contenedor y el último elemento no sea borrado.
El iterador pos debe ser válido y dereferenciable. Por lo tanto, el iterador end() (que es válido, pero no es dereferenciable) no puede usarse como valor para pos .
El iterador first no necesita ser desreferenciable si first == last : eliminar un rango vacío es una operación nula.
Contenido
Parámetros
Valor de retornoIterador que sigue al último elemento eliminado.
Si
[
first
,
last
)
es un rango vacío, entonces se devuelve
last
.
Excepciones
No lanza a menos que se lance una excepción por el operador de asignación de
Complejidad
Lineal: el número de llamadas al destructor de
NotasCuando los elementos del contenedor deben ser eliminados basándose en un predicado, en lugar de iterar el contenedor y llamar al unario Ejemplo
Ejecutar este código
#include <deque> #include <iostream> void print_container(const std::deque<int>& c) { for (int i : c) std::cout << i << ' '; std::cout << '\n'; } int main() { std::deque<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; print_container(c); c.erase(c.begin()); print_container(c); c.erase(c.begin() + 2, c.begin() + 5); print_container(c); // Eliminar todos los números pares for (std::deque<int>::iterator it = c.begin(); it != c.end();) { if (*it % 2 == 0) it = c.erase(it); else ++it; } print_container(c); } Salida: 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 6 7 8 9 1 7 9 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
| ||||||||||||||||||||||||||||