C++ <list> push_front 函数
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;
}
#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;
}
#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>
点我分享笔记