Función push_front de C++ <list>

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 contenedorsize()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 <iostream>
#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 <iostream>
    #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 vezpush_frontagrega el nuevo elemento al frente.
    • El orden final de la lista enlazada es 1 -> 2 -> 3 -> 4 -> 5.

    C++ 容器类 <list>Clase contenedor <list> de C++

    Otras extensiones