Contenedores C++<forward_list>
en la biblioteca estándar de C++<forward_list>es un contenedor que proporciona una estructura de datos de lista enlazada simple.
A diferencia de la lista doblemente enlazada (std::list),std::forward_listsolo admite recorrido unidireccional. Es adecuado para escenarios que requieren recorrido hacia adelante e inserciones y eliminaciones frecuentes. Lo siguiente es unastd::forward_listforward_list
descripción detallada de::
std::forward_listLista enlazada simple- Es una lista enlazada unidireccional, solo se puede recorrer de adelante hacia atrás, no en sentido inverso.
Debido a su estructura de lista enlazada unidireccional, las operaciones de inserción y eliminación son muy eficientes en una posición conocida (complejidad O(1)).:
- y
std::listBaja sobrecarga de memoriastd::forward_listEn comparación,
solo necesita un puntero al siguiente nodo, lo que ahorra memoria.:
- No admite acceso aleatorio
operator[]oatNo admite el acceso a elementos por índice, no se puede usar
Sintaxis
std::forward_listEs una clase de plantilla en la biblioteca estándar de C++, definida en<forward_list>archivo de cabecera. Utiliza el parámetro de plantillaTpara especificar el tipo de elementos almacenados en la lista.
Lo siguiente esstd::forward_listla sintaxis básica de:
#include <forward_list> std::forward_list<T> list;
Constructores
std::forward_listProporciona varios constructores, incluyendo:
- Constructor predeterminado: crea un
forward_list。 - Constructor con valores iniciales: crea un que contiene los valores iniciales dados
forward_list。 - Constructor de rango: crea un que contiene los elementos del rango especificado
forward_list。
Funciones miembro comunes
void push_front(const T& value): inserta un elemento al frente de la lista.void pop_front(): elimina el elemento del frente de la lista.iterator before_begin(): devuelve un iterador que apunta a la posición anterior al frente de la lista.iterator begin(): devuelve un iterador que apunta al frente de la lista.iterator end(): devuelve un iterador que apunta al final de la lista.
Ejemplo
A continuación se muestra un ejemplo que utilizastd::forward_listun ejemplo simple, que incluye crear la lista, agregar elementos, recorrer la lista y mostrar los resultados.
Ejemplo
#include <forward_list>
int main() {
// Crea un forward_list vacío
std::forward_list<int> fl;
// Agrega elementos al frente de la lista
fl.push_front(10);
fl.push_front(20);
fl.push_front(30);
// Recorre el forward_list y muestra los elementos
for (auto it = fl.begin(); it != fl.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// Salida: 30 20 10
return 0;
}
Cuando ejecutes el código anterior, verás la siguiente salida:
30 20 10
std::forward_listEs un contenedor muy útil en la biblioteca estándar de C++, especialmente adecuado para escenarios donde se necesitan inserciones y eliminaciones frecuentes en el frente de la lista. Aunque no admite acceso aleatorio, en algunos casos sus ventajas de rendimiento pueden compensar esta deficiencia. Espero que este artículo ayude a los principiantes a comprender y usar mejorstd::forward_list。