怎么使用C++中的list
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,本篇内容主要讲解"怎么使用C++中的list",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用C++中的list"吧!构造的使用构造函数的使用主要有4
千家信息网最后更新 2025年02月08日怎么使用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};listl1(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};listli(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};listli(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};listli(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};listli(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中的元素 头插
listli(2,3);li.push_front(9);//现在list的内容为:9 2 3 头删
listli(3,'s');li.pop_front();//现在list的内容为:s s 尾插
listli(3,'s');li.push_back('a');//现在list的内容为:s s s a 尾删
listli(4,2);li.pop_back();//现在的list内容为: 2 2 2 pos位置插入
这里博主先介绍一个全局函数find(),它是一个函数模板
templateInputIterator find (InputIterator first, InputIterator last, const T& val); 即我们需要传三个参数,前两个是迭代器区间,后是待查找值,其中迭代器区间是左闭右开.
listli;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位置
listli;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};listli1(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安全错误
数据库的锁怎样保障安全
人员 流程 数据库
图书馆事实数据库
益诚(深圳)软件开发
网络安全和信息化 法律
欧陶收录在哪个数据库
非你莫属软件开发女求职者
ssl服务器安全证书
什么统筹协调网络安全工作
风云361年服务器
数据库日期增加一年
期货公司手机期货软件开发
泸州软件开发要去青岗科技
信息网络安全的岗位职责
代码数据库网络架构
服务器的热水可以喝吗
网络安全周启动新闻
网络安全法公益宣传稿
软件开发多少时间
客户端程序服务器程序
vb中用什么技术访问数据库
宝山区服务器回收多少钱
网络安全工作主要目标
互联网科技公司周年礼物
哈工程网络安全考研考什么
海南网络安全非标机箱哪里好
华为云服务器防火墙怎么关闭
数据库mdf文件下载
学软件开发需要哪些
汽车车载网络技术期末
在传统数据库应用领域