lost(c++)

lost(c++)
寻觅~流光一、list 概述
- 来自头文件:
#include <list>
- 类型:双向链表容器
- 特点:
- 插入/删除操作高效(尤其是中间插入/删除)
- 不支持随机访问(不能使用
[]
) - 支持迭代器(双向迭代器)
- 可存储任意类型元素(包括自定义类型)
二、创建与初始化
1 |
|
三、常用成员函数与方法分类总览
1️⃣ 访问元素
函数 | 说明 |
---|---|
front() | 获取第一个元素 |
back() | 获取最后一个元素 |
1 | list<int> l = {1, 2, 3}; |
2️⃣ 插入与删除
函数 | 说明 |
---|---|
push_back(val) | 在末尾添加元素 |
push_front(val) | 在头部添加元素 |
pop_back() | 删除最后一个元素 |
pop_front() | 删除第一个元素 |
insert(pos, val) | 在指定位置插入元素 |
erase(pos) | 删除指定位置元素 |
remove(val) | 删除所有等于 val 的元素 |
clear() | 清空 list 中所有元素 |
1 | list<int> l = {1, 2, 3}; |
3️⃣ 遍历 list
1 | list<int> l = {10, 20, 30}; |
4️⃣ 排序、去重与逆序
函数 | 说明 |
---|---|
sort() | 排序(默认升序) |
reverse() | 倒序 |
unique() | 删除连续重复元素 |
1 | list<int> l = {3, 2, 1, 2, 2, 3}; |
5️⃣ 大小与容量
函数 | 说明 |
---|---|
size() | 返回元素数量 |
empty() | 判断是否为空 |
clear() | 清空 list |
1 | cout << l.size(); // 返回大小 |
6️⃣ 合并与交换
函数 | 说明 |
---|---|
merge(lst) | 合并另一个已排序 list |
swap(lst) | 与另一个 list 交换内容 |
1 | list<int> l1 = {1, 3, 5}; |
7️⃣ 自定义排序(struct)
1 | struct Student { |
8️⃣ assign() 赋值操作
1 | list<int> l; |
9️⃣ emplace / emplace_back(C++11)
- 比
push_*
更高效,直接构造元素
1 | list<string> l; |
四、完整示例:功能演示
1 |
|
五、与 vector 的区别
特性 | list | vector |
---|---|---|
底层结构 | 双向链表 | 动态数组 |
访问方式 | 只能通过迭代器 | 支持随机访问 ([] ) |
插入/删除效率 | 中间插入/删除高效 | 末尾插入/删除高效 |
内存使用 | 相对高 | 相对低 |
使用场景 | 频繁插入删除 | 频繁读写、索引访问 |
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果