Función push_front de C++ <list>
Clase contenedor <list> de C++
push_frontes usada en list paraagregar elementos al frente de la lista enlazadaes una de las operaciones características de las listas enlazadas.
push_frontEs una función miembro que se utiliza paralista enlazada (list)deen el frenteagregar un nuevo elemento.
A diferencia de vector,listla complejidad temporal de insertar elementos al frente es O(1), muy eficiente.
Significado de las palabras: pushsignifica empujar,frontsignifica frente, juntos significan empujar hacia adelante, muy descriptivo.
Sintaxis básica y parámetros
push_frontEs una función miembro de la clase contenedor, no necesita parámetros al llamarla.
Formato de sintaxis
void push_front(const T& value); void push_front(T&& value); // C++11 之后(支持右值)
Descripción de parámetros
- Parámetro:
value- Tipo: igual al tipo de elemento especificado al definir el contenedor
- Descripción: el valor que deseas agregar al frente del contenedor.
Descripción de la función
- Valor de retorno:
void(sin valor de retorno). - Efecto: el contenedor
size()aumentará en 1. El nuevo elemento se convierte en el primer elemento de la lista enlazada.
Ejemplo
Dominemos completamente a través de ejemplospush_frontel uso de.
Ejemplo 1: Uso básico - Agregar elementos al frente
Ejemplo
#include <list>
int main() {
std::list<int> numbers = {20, 30, 40};
std::cout << "lista original: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Agregar elemento al frente
numbers.push_front(10);
std::cout << "después de push_front(10): ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
Resultado esperado:
原始 list: 20 30 40 push_front(10) 后: 10 20 30 40
Explicación del código:
push_front(10)Agrega 10 al frente de la lista enlazada, convirtiéndolo en el primer elemento.Ejemplo 2: Construir una lista enlazada
Usandopush_frontse puede construir fácilmente una lista enlazada desde el frente.
Ejemplo
#include <list>
int main() {
std::list<int> data;
// Agregando sucesivamente al frente, el orden final es inverso al orden de inserción
data.push_front(5);
data.push_front(4);
data.push_front(3);
data.push_front(2);
data.push_front(1);
std::cout << "lista enlazada construida: ";
for(int n : data) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
Resultado esperado:
构建的链表: 1 2 3 4 5
Explicación del código:
- Cada vez
push_frontagrega el nuevo elemento al frente. - El orden final de la lista enlazada es 1 -> 2 -> 3 -> 4 -> 5.
Otras extensiones