list的使用

慈云数据 1年前 (2024-04-06) 技术支持 69 0

前言

我们前面已经对string和vector进行了学习使用,以及对他们的底层进行了模拟实现!本期我们继续学习STL的另外一个容器---list。

本期内容介绍

什么是list?

list的常用接口

什么是list?

还是来看看官方的文档说明!

这里通过官方文档我们可以知道!list是一个带头双向循环的链表!在插入和删除时,时间复杂度是常量级别的!

list常用接口

在正式的开始介绍接口使用前,我们还是来了解一下类型重命名!

这里主要用到的就是上面的三个! value_type 就是T, reference 是value_type&, size_type 就是size_t

构造、拷贝构造、赋值拷贝、析构

list lt1;//空构造
list lt2(10, 6);//n 个 val构造
vector v = { 1, 2,4,56,7,8,-1 };
list lt3(v.begin(), v.end());//迭代器区间构造
list lt4(lt2);//拷贝构造

这里除了介绍这些常见的外!这里在穿插一个C++11引入的一个非常好用的,初始化序列初始化!

这个在上期vector的模拟实现已经介绍了,auto ret = {1,2,3};此时的ret就是initializer_list。

list lt5 = { 1,2,3,4,5 };//C++11的初始化序列初始化

list lt4(lt2);//拷贝构造
list lt5 = { 1,2,3,4,5 };//C++11的初始化序列初始化
lt5 = lt4;//赋值拷贝

析构还是一样的:清理资源、释放空间~!

迭代器

正向

list lt = { 1,2,3,4,5 };//C++11的初始化序列初始化
const list clt = { 10, 20,30, 40 };
list::iterator it = lt.begin();//正向
while (it != lt.end())
{
	cout 
微信扫一扫加客服

微信扫一扫加客服