std::forward_list
Definido en el archivo de encabezado <forward_list>
|
||
template< class T, |
(1) | (desde C++11) |
namespace pmr { template <class T> |
(2) | (desde C++17) |
std::forward_list
es un contenedor que admite la inserción y eliminación rápida de elementos desde cualquier lugar del contenedor. No se admite el acceso aleatorio rápido. Se implementa como una lista enlazada (o simplemente enlazada). En comparación con std::list, este contenedor proporciona un almacenamiento más eficiente en espacio cuando no se necesita iteración bidireccional.
Agregar, eliminar y mover los elementos dentro de la lista, o entre varias listas, no invalida los iteradores que se refieren actualmente a otros elementos de la lista. Sin embargo, un iterador o referencia que hace referencia a un elemento se invalida cuando el elemento correspondiente se elimina (a través de erase_after) de la lista.
std::forward_list
cumple con los requerimientos de Contenedor (excepto por la función miembro size y la complejidad del operador operator==
, cuya complejidad siempre es lineal), ContenedorConscienteDeAsignador y ContenedorDeSecuencia.
Contenido |
[editar] Parámetros de plantilla
T | - | El tipo de los elementos.
| ||||||||||||
Allocator | - | Un asignador que se usa para adquirir y liberar memoria, y para construir y destruir los elementos en esa memoria. El tipo debe cumplir con los requisitos de Asignador. El comportamiento no está definido si Allocator::value_type no es el mismo que T. |
[editar] Tipos miembro
Tipo miembro | Definición |
value_type
|
T
|
allocator_type
|
Allocator
|
size_type
|
Tipo entero sin signo (por lo general std::size_t) |
difference_type
|
Tipo entero con signo (por lo general std::ptrdiff_t) |
reference
|
value_type&
|
const_reference
|
const value_type&
|
pointer
|
std::allocator_traits<Allocator>::pointer |
const_pointer
|
std::allocator_traits<Allocator>::const_pointer |
iterator
|
IteradorDeAvanceLegado |
const_iterator
|
IteradorDeAvanceLegado constante |
[editar] Funciones miembro
Construye el contenedor forward_list . (función miembro pública) | |
(C++11) |
Destruye el contenedor forward_list . (función miembro pública) |
(C++11) |
Asigna valores al contenedor. (función miembro pública) |
(C++11) |
Asigna valores al contenedor. (función miembro pública) |
(C++23) |
Asigna un rango de valores al contenedor. (función miembro pública) |
(C++11) |
Devuelve el asignador de memoria asociado. (función miembro pública) |
Acceso a elementos | |
(C++11) |
Accede al primer elemento. (función miembro pública) |
Iteradores | |
(C++11) |
Devuelve un iterador al elemento antes del principio del contenedor. (función miembro pública) |
(C++11) |
Devuelve un iterador al principio. (función miembro pública) |
(C++11) |
Devuelve un iterador al final. (función miembro pública) |
Capacidad | |
(C++11) |
Comprueba si el contenedor está vacío. (función miembro pública) |
(C++11) |
Devuelve el número máximo posible de elementos. (función miembro pública) |
Modificadores | |
(C++11) |
Borra el contenido. (función miembro pública) |
(C++11) |
Inserta elementos después de un elemento. (función miembro pública) |
(C++11) |
Construye elementos en el sitio después de un elemento. (función miembro pública) |
(C++23) |
Inserta un rango de elementos después de un elemento. (función miembro pública) |
(C++11) |
Borra un elemento después de un elemento. (función miembro pública) |
(C++11) |
Inserta un elemento al principio del contenedor. (función miembro pública) |
(C++11) |
Construye un elemento en el sitio al principio del contenedor. (función miembro pública) |
(C++23) |
Agrega un rango de elementos al principio. (función miembro pública) |
(C++11) |
Remueve el primer elemento. (función miembro pública) |
(C++11) |
Cambia el número de elementos almacenados. (función miembro pública) |
(C++11) |
Intercambia el contenido. (función miembro pública) |
Operaciones | |
(C++11) |
Fusiona dos listas ordenadas. (función miembro pública) |
(C++11) |
Mueve elementos de otro contenedor forward_list . (función miembro pública) |
(C++11) |
Elimina elementos que satisfacen un criterio específico. (función miembro pública) |
(C++11) |
Invierte el orden de los elementos. (función miembro pública) |
(C++11) |
Elimina elementos consecutivos duplicados. (función miembro pública) |
(C++11) |
Ordena los elementos. (función miembro pública) |
[editar] Funciones no miembro
(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(C++20) |
Compara lexicográficamente los valores de forward_list. (plantilla de función) |
(C++11) |
Especializa el algoritmo std::swap. (plantilla de función) |
Borra todos los elementos que satisfacen un criterio específico. (plantilla de función) |
Guías de deducción |
(desde C++17) |
[editar] Notas
Macro de prueba de característica | Valor | Estándar | Comentario |
---|---|---|---|
__cpp_lib_containers_ranges |
202202L | (C++23) | Construcción de rangos e inserción para contenedores. |
[editar] Ejemplo
Esta sección está incompleta Razón: sin ejemplo |
[editar] Véase también
Lista doblemente enlazada. (plantilla de clase) |