Skip to content

list容器

C++ 标准库提供了丰富的功能,其中 <list> 是一个非常重要的容器类,用于存储元素集合,支持双向迭代器。

<list> 是 C++ 标准模板库(STL)中的一个序列容器,它允许在容器的任意位置快速插入和删除元素。与数组或向量(<vector>)不同,<list> 不需要在创建时指定大小,并且可以在任何位置添加或删除元素,而不需要重新分配内存。

image-20240803165832293

使用list需要引入list头文件

c++
#include <list>
#include <iostream>

int main(){
    list<int> lt;
}

1.构造函数

c++
1ist<T> 1ist;			//1ist采用采用模板类实现,对象的默认构造形式:
1ist(beg, end);			//构造函数将[beg,end)区间中的元素拷贝给本身。
1ist(n, elem);			//构造函数将n个elem拷贝给本身。
1ist(const 1ist& 1ist);	//拷贝构造函数

2.元素插入和删除操作

c++
push_back(elem);				//在容器尾部加入一个元素
pop_back();						//删除容器中最后一个元素
push_front(elem);				//在容器开头插入一个元素
pop_front();					//从容器开头移除第一个元素
insert(pos,elem);				//在pos位置插elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);				//在pos位置插入n个elem数据,无返回值。
insert(pos,begin,end);			//在pos位置插入[beg,end)区间的数据,无返回值。
clear();						//移除容器的所有数据
erase(begin,end);					//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);						//删除pos位置的数据,返回下一个数据的位置。
remove(elem);					//删除容器中所有与elem值匹配的元素。

3.大小操作

c++
size();				//返回容器中元素的个数
empty();			//判断容器是否为空
resize(num);		//重新指定容器的长度为num,
                        //若容器变长,则以默认值填充新位置。
                        //如果容器变短,则末尾超出容器长度的元素被删除。

resize(num,elem);	//重新指定容器的长度为num,
                        //若容器变长,则以elem值填充新位置。
                        //如果容器变短,则末尾超出容器长度的元素被删除

4.赋值操作

c++
assign(beg, end);			//将[beg,end)区间中的数据拷贝赋值给本身。
assign(n, elem);			//将n个elem拷贝赋值给本身。
list& operator=(const 1ist& list);	//重载等号操作符
swap(list);	//将list与本身交换

5.数据存取

c++
front();  //返回第一个元素
back();  //返回最后一个元素

6.反转、排序

c++
reverse();    // 反转链表
sort(); 		// p

MIT Licensed