当前位置: 首页 > news >正文

STL--list(双向链表)

目录

一、list 对象创建

1、默认构造函数

2、初始化列表

3、迭代器

4、全0初始化

5、全值初始化

6、拷贝构造函数

二、list 赋值操作

1、=赋值

2、assign(迭代器1,迭代器2)

3、assign(初始化列表)

4、assign(a个b)

三、list 大小操作

1、判空

2、大小

3、调整大小

四、数据插入

1、头插

2、尾插

3、insert函数(与deque、vector类似)

五、list 数据删除

1、头删

2、尾删

3、erase函数(与deque、vector类似)

4、清空

六、list 数据访问

首元素:l.front();

尾元素:l.back();

自定义依据下标访问数据函数

七、list 链表反转

八、list 链表排序


一、list 对象创建

1、默认构造函数

         list<int> l1;

2、初始化列表

        ①list<int> l2_1={1,2,3,4,5};

        ②list<int> l2_2({1,2,3,4,5});

3、迭代器

        list<int> l3(l2_1.begin(),l2_2.end());

4、全0初始化

        list<int> l4(8);

5、全值初始化

        list<int> l5(8,6);

6、拷贝构造函数

        list<int> l6(l5);

二、list 赋值操作

list<int> l={1,2,3,4,5};

1、=赋值

        l1=l;

2、assign(迭代器1,迭代器2)

        l2.assign(l.begin(),l.end());

3、assign(初始化列表)

        l3.assign({1,2,3,4,5});

4、assign(a个b)

        l4.assign(a,b);

三、list 大小操作

1、判空

        l.empty();

2、大小

        l.size();

3、调整大小

        ①l.resize(n);        将大小调整为n,空余以0代替

        ②l.resize(n,a);        ​​​​​将大小调整为n,空余以a代替

四、数据插入

1、头插

        l.push_front();

2、尾插

        l.push_back();

3、insert函数(与deque、vector类似)

        ①l.insert(迭代器,值);

        ②l.insert(迭代器,数,值);

        ③l.insert(迭代器1,迭代器2,迭代器3);

五、list 数据删除

1、头删

        pop_front();

2、尾删

        pop_back();

3、erase函数(与deque、vector类似)

        ①erase(迭代器);

        ②erase(迭代器1,迭代器2);

4、清空

        clear();

六、list 数据访问

list不支持随机访问,如[下标]、at函数

list的迭代器list<T>::iterator支持++操作,却不支持+1或+7等等操作

首元素:l.front();

尾元素:l.back();

自定义依据下标访问数据函数

int getListItemByIndex(list<int>& l, int index)
{list<int>::iterator it = l.begin();while (index--)it++;return *it;
}

七、list 链表反转

        l.reverse();

八、list 链表排序

        l.sort(); 

与<algorithm>中sort类似。

http://www.lryc.cn/news/523826.html

相关文章:

  • ZooKeeper 中的 ZAB 一致性协议与 Zookeeper 设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色)
  • “深入浅出”系列之C++:(11)推荐一些C++的开源项目
  • 《重生到现代之从零开始的C++生活》—— 类和对象2
  • “UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css
  • 【Pandas】pandas Series transform
  • 【博客之星2024年度总评选】年度回望:我的博客之路与星光熠熠
  • 飞牛 使用docker部署Watchtower 自动更新 Docker 容器
  • 【Block总结】TAdaConv时序自适应卷积,轻量高效的时间建模卷积|即插即用
  • Spring Boot 项目启动报错 “找不到或无法加载主类” 解决笔记
  • CSS 网络安全字体
  • Linux高并发服务器开发 第十五天(fork函数)
  • 【人工智能】Python中的自动化机器学习(AutoML):如何使用TPOT优化模型选择
  • 探秘自然地理:从太阳到地球的奇妙之旅与灾害预警
  • go语言zero框架通过chromedp实现网页在线截图的设计与功能实现
  • AI发展困境:技术路径与实践约束的博弈
  • [前端算法]排序算法
  • Zemax STAR 模块的入门设置
  • 知识图谱的语义叙事:构建智慧的连贯之路
  • Oracle graph 图数据库体验-安装篇
  • Nginx:从入门到实战使用教程
  • 网络安全:信息时代的守护者
  • Visual Studio Code + Stm32 (IAR)
  • JavaScript语言的正则表达式
  • R语言的编程范式
  • CentOS9 安装Docker+Dpanel+onlyoffice(https、更改字体、字号、去除限制)的避坑笔记
  • Excel 技巧11 - 如何使用Excel作成简单的排班表(★★),weekday 函数,TEXT函数
  • StarRocks 怎么让特定的SQL路由到FE master节点的
  • 在Windows/Linux/MacOS C++程序中打印崩溃调用栈和局部变量信息
  • 解决npm install安装出现packages are looking for funding run `npm fund` for details问题
  • 豆包MarsCode:小C点菜问题