怎么使用C++中的list
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容主要讲解"怎么使用C++中的list",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用C++中的list"吧!构造的使用构造函数的使用主要有4
千家信息网最后更新 2026年11月04日怎么使用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安全错误
数据库的锁怎样保障安全
科技金融是不是互联网金融
互联网科技有限公司经营范围
高科技与互联网
浩特互联网科技
成都互联网科技公司
易通互联网络科技有限公司
温州喔噻互联网科技有限公司
昭通互联网科技选哪家
广州市恰铎互联网科技有限公司
互联网在线教育科技创业
科技大学互联网
世界互联网领先科技成果获奖
广州千川互联网科技有限公司
杭州披云加互联网科技有限公司
互联网风格科技公司名称
东营紫格互联网科技
江苏互联网智能科技产品出厂价
福仕德教育科技互联网
互联网科技职业技能培训学校
高科技和互联网的现代国家
互联网科技开发公司
互联网科技的发展
迪茉互联网科技
互联网科技产品
深圳国际航运科技和互联网
广东鹅鹅鹅互联网科技有限公司
陕西九四连强互联网科技有限公司
互联网的科技体现在哪里
青岛易易互联网科技
互联网领先科技成果宣传视频