怎么使用C++中的list
发表于:2025-11-20 作者:千家信息网编辑
千家信息网最后更新 2025年11月20日,本篇内容主要讲解"怎么使用C++中的list",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用C++中的list"吧!构造的使用构造函数的使用主要有4
千家信息网最后更新 2025年11月20日怎么使用C++中的list
本篇内容主要讲解"怎么使用C++中的list",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用C++中的list"吧!
构造的使用
构造函数的使用主要有4个,分别如下
| list() | 构造空的list |
|---|---|
| list (size_type n, const value_type& val = value_type()) | 构造的list中包含n个值为val的元素 |
| list (const list& x) | 拷贝构造函数 |
| list (InputIterator first, InputIterator last) | 用[first, last)区间中的元素构造list |
1 构造空list
不需要传入任何参数,直接利用list类模板定义对象
listl1; //定义int型链表 list l2; //定义char型链表 list l3; //定义double型链表 //上面的三个对象,内容都空
2 构造含n个值为val的元素
按照上面的定义直接传参即可
listl1(4,5); //定义int型链表,含有4个5 list l2(3,'s'); //定义char型链表,含有3个's' list l3(4,2.3); //定义double型链表,含有4个2.3
3 拷贝构造
即传入一个同类型的list
listl1(4,5); //定义int型链表,含有4个5 list l2(l1); //把l1的内容复制一份给了l2
4 用迭代区间
**这里有个注意点,迭代区间是左闭右开的!**即不包含右边界.
int num[4] = {1,2,3,4};list l1(3,'w');list l2(l1.begin(),l1.end()); //end()是最后一个元素位置的下一个元素位置,所以不包括,因此l2的内容是 'w' 'w' 'w'list l3(num,num + 3); //因为num+3的位置,索引为3,但是迭代区间左闭右开,所以不包括索引3位置,内容为1 2 3 迭代器接口
C++提供了如下:
| 函数声明 | 接口说明 |
|---|---|
| begin() + end() | 返回第一个元素的迭代器+返回最后一个元素下一个位置的迭代器 |
| rbegin() + rend() | 返回第一个元素的reverse_iterator,即end位置 + 返回最后一个元素下一个位置的reverse_iterator,即begin位置 |
1 正常迭代接口
int num[5] = {1,2,3,4,5};list li(num,num+5); //创建内容为1 2 3 4 5的链表list::iterator it = li.begin();while(it = li.end()){ cout<<*it<<" "; it++;}//输出结果为: 1 2 3 4 5 2 逆向迭代接口
int num[5] = {1,2,3,4,5};list li(num,num+5); //创建内容为1 2 3 4 5的链表list::iterator it = li.rbegin();while(it = li.rend()){ cout<<*it<<" "; it++;}//输出结果为: 5 4 3 2 1 容量接口
主要有两个,如下:
| 函数声明 | 接口说明 |
|---|---|
| empty() | 检测list是否为空,是返回true,否则返回false |
| size() | 返回list中有效节点的个数 |
int num[5] = {1,2,3,4,5};list li(num,num+5); //创建内容为1 2 3 4 5的链表list li1;if(li.empty()) { cout<<"list没有数据"<元素访问
这里c++提供了两个接口,分别用于首尾访问front() 和 back();
int num[5] = {1,2,3,4,5};list li(num,num+5); //创建内容为1 2 3 4 5的链表cout << "front获取的元素为:"<数据修改
这里主要提供了如下接口:
函数声明 接口说明 push_front() 在list首元素前插入值为val的元素 pop_front() 删除list中第一个元素 push_back() 在list尾部插入值为val的元素 pop_back() 删除list中最后一个元素 insert(iterator pos,const value_type& val) 在list position 位置中插入值为val的元素 erase(iterator pos) 删除list position位置的元素 swap() 交换两个list中的元素
头插
list li(2,3);li.push_front(9);//现在list的内容为:9 2 3
头删
list li(3,'s');li.pop_front();//现在list的内容为:s s
尾插
list li(3,'s');li.push_back('a');//现在list的内容为:s s s a
尾删
list li(4,2);li.pop_back();//现在的list内容为: 2 2 2
pos位置插入
这里博主先介绍一个全局函数find(),它是一个函数模板
template InputIterator find (InputIterator first, InputIterator last, const T& val);
即我们需要传三个参数,前两个是迭代器区间,后是待查找值,其中迭代器区间是左闭右开.
list li;li.push_bakc(1);li.push_bakc(2);li.push_bakc(3);list::iterator it = li.begin();it = find(it,it+3,2) //找到元素2的位置li.insert(it,66);//现在的list内容为: 1 66 2 3
erase擦除pos位置
list li;li.push_bakc(1);li.push_bakc(2);li.push_bakc(3);list::iterator it = li.begin();it = find(it,it+3,2) //找到元素2的位置li.erase(it);//现在的list内容为: 1 3
交换两个链表元素
int num1[4] = {1,2,3,4};int num2[5] = {5,4,3,2,1};list li1(num1,num1 + 4);list li2(num2,num2 + 5);li1.swap(li2); //交换链表//现在li1为: 5 4 3 2 1//现在li2为: 1 2 3 4 到此,相信大家对"怎么使用C++中的list"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
元素
内容
位置
迭代
接口
函数
区间
两个
C++
数据
结果
输出
三个
参数
对象
拷贝
模板
索引
面的
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
武汉大学网络安全专业评级
网络安全 无线网络安全
河南苹果软件开发多少钱
博兴应用软件开发服务
泛微网络技术部都在那里工作
济南交易软件开发服务费
湖南启焚互联网科技
重庆网络安全宣传法治
网络安全事件应管理制度
软件开发设计维修学校
刀片服务器不开机有辐射吗
百万pv的服务器配置
辽宁诊疗软件开发数据科学方案
三四线城市的软件开发公司
沧州市小程序软件开发公司
连接池数据库交易
网络安全利润最好的环节
知网数据库的更新
删除dbf中的一行数据库
宿州网络安全产品认证
数据库查询优化的一般准则
注重网络安全观
mac连接服务器文件
云锁服务器漏洞防护
最近关于网络安全的电视剧
洪山哪里有软件开发团队
网络安全法亮点例子
欢腾网络技术有限公司
尚未备份数据库日记尾部
安徽九鼎软件开发公司电话