C++ <list> push_front 函数

C++ 容器类 <list> C++ 容器类 <list>


push_front 是 list 中用于在链表头部添加元素的函数,是链表的特色操作之一。

push_front 是一个成员函数,用于在链表 (list)头部添加一个新元素。

与 vector 不同,list 在头部插入元素的时间复杂度是 O(1),非常高效。

单词释义push 是推入,front 是前面,合起来就是推入到前面,非常形象。


基本语法与参数

push_front 是容器类的成员函数,调用它不需要参数。

语法格式

void push_front(const T& value);
void push_front(T&& value);  // C++11 之后(支持右值)

参数说明

  • 参数value
    • 类型: 与容器定义时指定的元素类型一致
    • 描述: 你想要添加到容器头部的那个值。

函数说明

  • 返回值void (无返回值)。
  • 效果: 容器的 size() 会增加 1。新元素成为链表的第一个元素。

实例

让我们通过例子彻底掌握 push_front 的用法。

示例 1:基础用法 - 在头部添加元素

实例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {20, 30, 40};

    std::cout << "原始 list: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // 在头部添加元素
    numbers.push_front(10);

    std::cout << "push_front(10) 后: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

运行结果预期:

原始 list: 20 30 40
push_front(10) 后: 10 20 30 40

代码解析:

  • push_front(10) 将 10 添加到链表头部,使其成为第一个元素。
  • 示例 2:构建链表

    使用 push_front 可以方便地从头部构建链表。

    实例

    #include <iostream>
    #include <list>

    int main() {
        std::list<int> data;

        // 依次在头部添加,最终顺序与添加顺序相反
        data.push_front(5);
        data.push_front(4);
        data.push_front(3);
        data.push_front(2);
        data.push_front(1);

        std::cout << "构建的链表: ";
        for(int n : data) std::cout << n << " ";
        std::cout << std::endl;

        return 0;
    }

    运行结果预期:

    构建的链表: 1 2 3 4 5
    

    代码解析:

    • 每次 push_front 都将新元素添加到头部。
    • 最终链表顺序是 1 -> 2 -> 3 -> 4 -> 5。

    C++ 容器类 <list> C++ 容器类 <list>