C++之标准库(STL)容器List的用法

list说明
  • 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
  • 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域
  • List容器是一个双向链表。
  • 使用前需添加头文件
#include<list>
list定义
list<typename> l;   //typename表示链表中元素的类型可以是int、double等。
list使用


从上图可以看出链表两端都可以进行元素的操作。

list赋值操作
  • assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身(把数组中的元素拷贝给链表)。
  • assign(n, elem); //将n个elem拷贝赋值给本身。
  • deque& operator=(const deque &deq); //重载等号操作符
  • swap(deq); // 将deq与本身的元素互换

例1:

//例1:assign(beg, end)
list<int> l;
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
l.assign(a, a + 6);
//例2:assign(n, elem)
list<int> l1;
l1.assign(3, 6);
//例4:swap(deq)
list<int> l2, l3;
l2.assign(3, 6);
l3.assign(4, 8);
l2.swap(l3)

运行结果:

1结果:1 2 3 4 5 62结果: 6 6 64结果: l2: 8 8 8 8   l3: 6 6 6
list数据元素插入和删除操作
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除第一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。
clear();//移除容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置。
remove(elem);//删除容器中所有与elem值匹配的元素。
list数据存取
front();//返回第一个元素。
back();//返回最后一个元素。
list大小操作
size();//返回容器中元素的个数
empty();//判断容器是否为空
resize(num);//重新指定容器的长度为num,
//若容器变长,则以默认值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除。
resize(num, elem);//重新指定容器的长度为num,
//若容器变长,则以elem值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除。
list反转排序
reverse();//反转链表,比如lst包含1,3,5元素,运行此方法后,lst就包含5,3,1元素。
sort(); //list排序
list访问

list<int> l;
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
l.assign(a, a + 6);	

//通过迭代器进行访问
list<int>::iterator;
for (auto it = l.begin(); it != l.end(); it++)
{
	cout << "元素:" << *it << endl;
}

结果:

1 2 3 4 5 6
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xp_fangfei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值