深入解析:细腻的链接:C++ list 之美的解读

细腻的链接:C++ list 之美的解读

前言:

小编在前几日刚写过关于vector容器的内容,现在小编list容器也学了一大部分了,小编先提前说一下学这部分的感悟,这个部分是我学C++以来第一次感到有难度的地方,特别是在list容器的模拟实现中便可以看出来,到时候再细说,总之就是我在这一部分感到有一点困难了,它很考察前面知识点,包括但不限于类和对象,模板,数据结构部分内容等等,这边话也不多说了,开启今日的学习时间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


正文:

1.list的介绍

1.1.list是什么

list也和我们之前学过的某个数据结构息息相关,它就是:双链表,list的底层实际上就是带头双向循环链表,恰好小编这里有一个很形象的展示它的图片,这边我就分享出来了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过上图我们就可以看出list的具体结构,它就是我们之前学过的双向带头循环链表(双链表),此时的list和上次我讲述的vector是一样的,它们都是一个模版类,因为vector容器的类型可能都是不相同的,他可以接受int,float,double作为类型。甚至list同样也可以存储string容器,可谓是很全能,这便是模版带来的好处,可以帮助我们完成许多事情。

1.2.list功能一览

下面小编先给各位展示一下网站上对于list容器的简介,可能有很多读者朋友是第一次看我的文章,所以我还是放上这个网站的链接:list - C++ Reference,各位读者朋友可以在这个网站看到list容器更为详细的介绍,只不过很考验各位的英语功底,我还是那句话

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下面小编就和之前STL容器讲解一样,开始对于list部分函数的介绍~

2.list功能讲述

2.1.list的构造

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

构造函数也是我们的老朋友,每一个容器都是有它自己的构造函数的,连构造函数都没有,这个容器创建起来也是没有一点意义,下面小编就分别讲述一下部分构造函数的使用,可能讲的不全,但是只要先把这个掌握了,那么在掌握其他就容器的多了。

构造函数(((constructor)) )接口说明
list (size_type n, const value_type& val =value_type())构造的list中包含n个值为val的元素
list()构造空的list
list (const list& x)拷贝构造函数
list (InputIterator fifirst, InputIterator last)用[first, last)区间中的元素构造list
2.1.1.list(size_t n,const value_type& val = vlaue_type())

这个构造函数,乍一看感觉有点困难,其实它是很简单的,这个函数小编在之前的容器中也不止一次说过,它的功能其实就是构造并初始化n个val罢了,它的形参之所以看起来如此的复杂,其实就是因为它是一个模版类罢了,下面小编展示用法:

std :: list s1(10,1);  //这里我还是提醒一下,因为list是模板类,所以初始化必须显示初始化,告知编译器它内容的类型
2.1.2.list()

这个函数也是一个常客了,小编在前面也说过,它的功能其实就是构造并初始化一个空的list,下面我直接上代码:

std :: list();
2.1.3.list(const list& x)

这个函数也是比较好认识的,通过括号里面的内容,我们便可以知晓它是一个很典型的拷贝构造函数的写法,这个函数小编在类和对象(3)讲过,感兴趣的读者朋友可以去看一看(每日推销),废话不多说,小编展示它的用法:

std :: list s1;
std :: list s2 = s1;  //也可以写成list
---

⭐ 优质资源

本文涉及的技术,这些课程讲得更深入:

  1. C++实战笔记
    ‍ 罗剑锋 | 高效学习现代C++编程
posted @ 2026-03-09 13:10  clnchanpin  阅读(42)  评论(0)    收藏  举报