list用法

本文详细介绍了C++标准模板库中的List容器,包括其定义、数据插入、弹出、删除、查找、反转等操作,以及如何使用迭代器进行高效的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

list 对于数据的处理,有很多的优点,使用起来很方便,动态性和vector相似,但是各种操作都是比vector 更优的,比如在复杂度方面。

下面讲讲各种操作:

 定义一个双向链表, list<int>mp  ,定义一个数量为n 的 链表 list<int>mp(n),初始值都是0,定义一个数量为n,各个元素值都是m的链表list<int>mp(n,m)。     

数据的插入push_back()是后插法,从后面插入,push_front( )是前插法,每次都是插到第一个位置去 :很灵活

mp.push_back(100);  //后插
mp.push_front(600);//前插

弹出元素pop_back() 和pop_front() 是弹出末元素和首元素的操作 ,简单灵活。

mp.pop_back();
mp.pop_front();

链表插入操作  insert,可以在任何地方进行插入:是迭代器所指的位置插入一个元素。

mp.insert(mp.begin(),14);

size()返回容器内元素个数的大小。 empty()判断是否为空。 clear是清空所有的元素值。

删除操作:既可以是单个元素值,也可以是一段区域内的所有元素值。(迭代器来实现)

mp.erase(mp.begin()+2);  //删除单个元素
mp.erase(mp.begin(),mp.end());  //删除一段区域的元素

另一种删除 remove操作(直接用数值来实现):

list<int>mp{6,7,8,9,7,10};
mp.remove(7);
for(auto it=mp.begin();it!=mp.end();it++)
	cout<<*it<<endl;

倒置(反转)容器内所有的元素 reverse函数实现。

list<int>mp{6,7,8,9,7,10};
reverse(mp.begin(),mp.end());
for(auto it=mp.begin();it!=mp.end();it++)
	cout<<*it<<endl;

list find函数操作:

 

list<int>mp;
list<int>::iterator iter;
mp.push_back(123);
iter=find(mp.begin(),mp.end(),123);

清空操作 clear( ),判断是否为空 empty().

https://blog.youkuaiyun.com/yu121380/article/details/81604557

https://blog.youkuaiyun.com/yu876876/article/details/81698030 详解。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值