1. 双向链表list *
1.1 list的基本特性
C++的list是一种双链表,这意味着每个元素都有一个指向前一个和后一个元素的指针。相比于单链表,双链表在插入和删除操作中更为高效,因为它不需要遍历链表来找到插入或删除的位置。
list支持常见的序列操作,如添加元素(push_front, push_back),删除元素(erase),查找元素(find),访问元素(front, back)等。同时,list还支持一些更高级的操作,如合并(splice),排序(sort),反转(reverse)等。
1.2 list的代码使用例程
cpp
#include <iostream>
#include <list>
using namespace std;
list<int> my_list; // 创建一个整数类型的链表
my_list.push_back(1); // 添加元素
// 删除元素
my_list.pop_back(); // 删除末尾元素
my_list.pop_front(); // 删除头部元素
my_list.erase(2); // 删除指定元素
// 查找元素
auto it = my_list.find(1); // 在链表中查找元素1,返回指向它的迭代器
if (it != my_list.end()) { // 如果找到了元素1
std::cout << "Found: " << *it << std::endl; // 输出:Found: 1 }
1.3 list的用法总结(表格)
函数名 | 描述 |
---|---|
push_back() | 在链表末尾添加元素 |
push_front() | 在链表头部添加元素 |
pop_back() | 删除链表末尾的元素 |
pop_front() | 删除链表头部的元素 |
erase() | 删除链表中的指定元素 |
insert() | 在链表中指定位置插入元素 |
splice() | 将两个链表连接起来 |
sort() | 对链表进行排序 |
reverse() | 反转链表的顺序 |
find() | 在链表中查找元素 |
front() | 获取链表的第一个元素 |
back() | 获取链表的最后一个元素 |
empty() | 检查链表是否为空 |
size() | 获取链表的长度 |