C++教程-C++链表(List)
C++ 链表(List)
- 链表是一个连续的容器,而向量是一个非连续的容器,也就是说链表在连续的内存上存储元素,而向量在非连续的内存上存储元素。
- 向量中在中间插入和删除元素非常耗时,因为需要移动所有元素。链表通过解决这个问题,并使用链表容器来实现。
- 链表支持双向遍历,并提供了高效的插入和删除操作。
- 链表的遍历速度较慢,因为链表元素是按顺序访问的,而向量支持随机访问。
链表的模板为
#include<iostream>
#include<list>
using namespace std;
int main()
{
list<int> l;
}
它创建一个空的整数类型值链表。
链表也可以使用参数进行初始化。
#include<iostream>
#include<list>
using namespace std;
int main()
{
list<int> l
{1,2,3,4};
}
链表可以有两种初始化方式。
list<int> new_list{1,2,3,4};
或者
list<int> new_list = {1,2,3,4};
C++ 链表函数
以下是链表的成员函数:
方法 | 描述 |
---|---|
insert() | 在迭代器指向的位置之前插入新元素。 |
push_back() | 在链表的末尾添加一个新元素。 |
push_front() | 在链表的开头添加一个新元素。 |
pop_back() | 删除链表的最后一个元素。 |
pop_front() | 删除链表的第一个元素。 |
empty() | 检查链表是否为空。 |
size() | 查找链表中的元素数量。 |
max_size() | 查找链表的最大大小。 |
front() | 返回链表的第一个元素。 |
back() | 返回链表的最后一个元素。 |
swap() | 当两个链表的类型相同时,交换两个链表。 |
reverse() | 反转链表的元素顺序。 |
sort() | 按递增顺序对链表的元素进行排序。 |
merge() | 合并两个排序链表。 |
splice() | 将一个新链表插入到当前链表中。 |
unique() | 从链表中删除所有重复的元素。 |
resize() | 更改链表容器的大小。 |
assign() | 为链表容器分配一个新元素。 |
emplace() | 在指定位置插入一个新元素。 |
emplace_back() | 在链表的末尾插入一个新元素。 |
emplace_front() | 在链表的开头插入一个新元素。 |