广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎么使用C++中的list
  • 131
分享到

怎么使用C++中的list

2023-06-25 16:06:59 131人浏览 泡泡鱼
摘要

本篇内容主要讲解“怎么使用c++中的list”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用C++中的list”吧!构造的使用构造函数的使用主要有4个,分别如下list()构造空的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类模板定义对象

list<int> l1;        //定义int型链表 list<char> l2;       //定义char型链表 list<double> l3;     //定义double型链表 //上面的三个对象,内容都空

2 构造含n个值为val的元素

按照上面的定义直接传参即可

list<int> l1(4,5);           //定义int型链表,含有4个5 list<char> l2(3,'s');        //定义char型链表,含有3个's' list<double> l3(4,2.3);     //定义double型链表,含有4个2.3

3 拷贝构造

即传入一个同类型的list

list<int> l1(4,5);           //定义int型链表,含有4个5 list<int> l2(l1);            //把l1的内容复制一份给了l2

4 用迭代区间

**这里有个注意点,迭代区间是左闭右开的!**即不包含右边界.

int num[4] = {1,2,3,4};list<char> l1(3,'w');list<char> l2(l1.begin(),l1.end());  //end()是最后一个元素位置的下一个元素位置,所以不包括,因此l2的内容是 'w' 'w' 'w'list<int> 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<int> li(num,num+5);    //创建内容为1 2 3 4 5的链表list<int>::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<int> li(num,num+5);    //创建内容为1 2 3 4 5的链表list<int>::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<int> li(num,num+5);    //创建内容为1 2 3 4 5的链表list<int> li1;if(li.empty())   {    cout<<"list没有数据"<<endl;}else {    cout<<"list有"<<li.size()<<"个元素"<<endl;}if(li1.empty())   {    cout<<"list1没有数据"<<endl;}else {    cout<<"list1有"<<li1.size()<<"个元素"<<endl;}

元素访问

这里c++提供了两个接口,分别用于首尾访问front() 和 back();

int num[5] = {1,2,3,4,5};list<int> li(num,num+5);    //创建内容为1 2 3 4 5的链表cout << "front获取的元素为:"<<li.front()<<endl;cout << "back获取的元素为:"<<li.back()<<endl;

数据修改

这里主要提供了如下接口:

函数声明接口说明
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<int> li(2,3);li.push_front(9);//现在list的内容为:9 2 3

头删

list<char> li(3,'s');li.pop_front();//现在list的内容为:s s

尾插

list<char> li(3,'s');li.push_back('a');//现在list的内容为:s s s a

尾删

list<int> li(4,2);li.pop_back();//现在的list内容为: 2 2 2

pos位置插入

这里博主先介绍一个全局函数find(),它是一个函数模板

template <class InputIterator, class T>InputIterator find (InputIterator first, InputIterator last, const T& val);

即我们需要传三个参数,前两个是迭代器区间,后是待查找值,其中迭代器区间是左闭右开.

list<int> li;li.push_bakc(1);li.push_bakc(2);li.push_bakc(3);list<int>::iterator it = li.begin();it = find(it,it+3,2)       //找到元素2的位置li.insert(it,66);//现在的list内容为: 1 66 2 3

erase擦除pos位置

list<int> li;li.push_bakc(1);li.push_bakc(2);li.push_bakc(3);list<int>::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<int> li1(num1,num1 + 4);list<int> li2(num2,num2 + 5);li1.swap(li2); //交换链表//现在li1为: 5 4 3 2 1//现在li2为: 1 2 3 4

到此,相信大家对“怎么使用C++中的list”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么使用C++中的list

本文链接: https://www.lsjlt.com/news/305874.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用C++中的list
    本篇内容主要讲解“怎么使用C++中的list”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用C++中的list”吧!构造的使用构造函数的使用主要有4个,分别如下list()构造空的list...
    99+
    2023-06-25
  • C++ list怎么使用
    本篇内容介绍了“C++ list怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、list的介绍list的介绍list是可...
    99+
    2023-07-02
  • C#中List用法是什么
    这篇文章将为大家详细讲解有关C#中List用法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、#List泛型集合集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之...
    99+
    2023-06-22
  • 怎么使用Vue.js中的List Rendering
    这篇文章主要讲解了“怎么使用Vue.js中的List Rendering”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Vue.js中的List Re...
    99+
    2022-10-19
  • C++中list的使用与模拟实现
    目录一、list的介绍以及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity...
    99+
    2022-11-13
  • Redis中的list命令怎么使用
    这篇文章主要介绍“Redis中的list命令怎么使用”,在日常操作中,相信很多人在Redis中的list命令怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis中...
    99+
    2022-10-19
  • C++怎么实现list功能
    这篇文章主要介绍“C++怎么实现list功能”,在日常操作中,相信很多人在C++怎么实现list功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么实现list功能”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • Python中的List怎么用
    这篇文章主要为大家展示了“Python中的List怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中的List怎么用”这篇文章吧。什么是list?list 是一个序列!一串数据,...
    99+
    2023-06-22
  • 怎么在c#中将DataTable转换为List
    本篇文章为大家展示了怎么在c#中将DataTable转换为List,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  直接写一个datatable转list的类 利用泛型来写,更加通用pub...
    99+
    2023-06-14
  • C#中DataTable和List互转怎么实现
    今天小编给大家分享一下C#中DataTable和List互转怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。DataT...
    99+
    2023-07-06
  • android中list列表怎么使用
    在Android中,可以使用RecyclerView或ListView来显示列表数据。以下是使用RecyclerView的示例代码:...
    99+
    2023-08-15
    android list
  • C++ List链表如何使用
    这篇文章主要介绍“C++ List链表如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++ List链表如何使用”文章能帮助大家解决问题。1. list的介绍及使用1.1...
    99+
    2023-07-05
  • java中list的sublist方法怎么使用
    在Java中,List接口提供了一个subList方法,用于获取原始列表中的子列表。subList方法的使用方式如下:```List...
    99+
    2023-09-20
    java
  • java中list的retainall方法怎么使用
    List的retainAll()方法是用来保留列表中与指定集合中的元素相同的元素,即求两个集合的交集。该方法的使用方法如下:1. 创...
    99+
    2023-09-23
    java
  • C++List链表的介绍和使用
    目录1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity...
    99+
    2023-03-07
    C++ List链表 C++ List使用
  • C++入门之list的使用详解
    目录前言构造的使用1 构造空list2 构造含n个值为val的元素3 拷贝构造4 用迭代区间迭代器接口1 正常迭代接口2 逆向迭代接口容量接口元素访问数据修改头插头删尾插尾删pos位...
    99+
    2022-11-12
  • php中list怎么用
    这篇文章将为大家详细讲解有关php中list怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。list妙用//妙用一 list($a,$b) = [...
    99+
    2022-10-19
  • C++中list的用法实例讲解
    目录前言一、list的节点二、list的迭代器2.1、模板参数为什么是三个2.2 const 迭代器2.3 修改方法二、美中不足三、迭代器的分类3.x std::find的一个报错总...
    99+
    2022-11-12
  • 怎么在Java中使用 List方法
    怎么在Java中使用 List方法 ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java L...
    99+
    2023-05-31
    java list ava
  • C++之list容器如何使用
    今天小编给大家分享一下C++之list容器如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、list底层结构list...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作