【C++打怪之路Lv10】-- list

【C++打怪之路Lv10】-- list
🌈 个人主页:白子寰
🔥 分类专栏:重生之我在学Linux,C++打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~
💡 坚持创作博文(平均质量分82+),分享更多关于深度学习、C/C++,python领域的优质内容!(希望得到您的关注~)

 

目录

什么是list

list的特点

list常用的函数接口

构造函数

1)无参构造

2)用n个val值构造

3)拷贝构造函数

4)用迭代器进行初始化构造

容量操作接口

1)size

2)empty

3)resize

访问和遍历

1)迭代器(正向迭代器和反向迭代器)

2)front and back

list的增删查改

1)push_front

2)push_back

3)pop_front

4)pop_back

5)find

6)insert

7)erase

8)swap

9)assign

10)clear

list顺序修改接口


什么是list

在C++中,list是一种序列容器,属于标准模板库(STL)的一部分。

它是一个双向链表,可以高效地进行插入和删除操作,尤其是在序列的中间部分

list的特点

动态数组list是一个动态数组,其长度可以根据需要增长或缩小。双向链表:每个节点包含数据和两个指针,分别指向前一个和后一个节点,允许双向遍历。插入和删除操作高效:在任何位置插入或删除元素都非常快速,因为不需要移动其他元素。没有随机访问list不支持通过索引直接访问元素,访问必须从头开始迭代。内存分配:元素可以非连续地存储在内存中,无需连续的内存块。迭代器:提供双向迭代器,可以向前和向后遍历。常用成员函数:如push_backpush_frontpop_backpop_frontinserterasesplice等,用于链表操作。

小结:选择使用list还是其他容器(如vector或deque)取决于具体的应用场景和性能需求。如果应用需要频繁地在序列中间插入或删除元素,list是一个很好的选择。

如果需要快速随机访问元素,则vector可能是更好的选择。

 

list常用的函数接口

构造函数

1)无参构造



创建一个空的list容器,不包含任何元素

2)用n个val值构造



创建一个包含n个元素的list容器,所有元素都被初始化为val的副本。

如果不提供val参数,则使用默认构造函数初始化元素

3)拷贝构造函数



创建一个新的list容器,它是另一个同类型list容器x的副本。

这个构造函数会复制x中的所有元素到新的容器中

4)用迭代器进行初始化构造



创建一个list容器,并用迭代器范围[first, last)中的元素来初始化它。

这个构造函数可以用来从一个已存在的容器或者迭代器指定的序列中复制元素到新的list容器中。InputIterator可以是任何能够提供输入迭代器功能的迭代器类型

Read more

OpenClaw 都在排队养,你还在云端白嫖?手把手教你用 Python 搭建本地 AI 智能体(小白也能养自己的小龙虾)

OpenClaw 都在排队养,你还在云端白嫖?手把手教你用 Python 搭建本地 AI 智能体(小白也能养自己的小龙虾)

🦞 长文警告! 📜 文章目录(点击跳转,这波操作稳如老狗) 1. 前言:别再当云端 AI 的韭菜了,把“小龙虾”养在自己家 2. 第一步:给电脑装个“胃”——下载安装 Python(含官网地址) 3. 第二步:请个本地“大脑”——Ollama + Qwen 模型(白嫖党狂喜) 4. 第三步:搭个“龙虾笼子”——安装 OpenClaw(附项目地址) 5. 第四步:用 Python 写个“传话筒”,让你的小龙虾听你指挥 6. 第五步:第一次对话——你的本地贾维斯上线 7. 总结:白嫖虽好,但别让龙虾把你的电脑“钳”

By Ne0inhk
python之路并不一马平川:带你踩坑Pandas

python之路并不一马平川:带你踩坑Pandas

这是我的亲身经历。作为一名全能型的混子,Pandas是我吃饭的家伙之一,但光是把它请到我的电脑上,就差点让我“饭碗不保”。这是一段长达数周,充满挫折、困惑和最终解脱的曲折历程。我将带你完整回顾我踩过的每一个坑,以及那最后的“救命稻草”。我将以第一视角,带你完整回顾我踩过的那些坑,以及我是如何一步步爬出来的。 记得刚入行那年,我接手的第一个项目是个电商小程序开发。当时为了赶进度,我直接跳过了需求分析阶段,结果上线后发现支付接口和后台数据对不上,不得不紧急下架整改。那三天三夜不眠不休的debug经历,现在想起来还心有余悸。 去年在开发智能家居App时,我又犯了个典型错误:没有做好版本兼容性测试。当用户反馈老型号设备无法连接时,我们才发现蓝牙协议栈对新老设备的处理方式完全不同。这个教训让我养成了建立完整测试矩阵的习惯。 最惨痛的经历是去年年底的云服务迁移。当时为了节省成本,我选择了直接全量迁移数据库,结果因为网络波动导致数据不一致,差点酿成重大事故。现在我做数据迁移时都会严格遵循"全量备份-增量同步-数据校验"的标准流程。 这些血泪教训让我明白,在技术这条路上,捷径往往是最远的路。每

By Ne0inhk

如何轻松将 Python 英文版切换至中文界面

Python 的“英文版”切换到中文界面,主要取决于你指的到底是哪个部分: * Python 解释器 / 命令行:本身没有界面语言概念(一直是英文提示),但错误信息、帮助文档可以看中文版。 * IDLE(Python 自带的编辑器/Shell):默认英文菜单和提示,最常见需要汉化的地方。 * 第三方 IDE(如 PyCharm、VS Code):这些有官方中文支持。 * 官方文档:有完整的中文翻译。 下面按场景给你最简单、有效的切换方法(2026 年最新实用方案)。 1. 最常见需求:把 IDLE 切换成中文界面(推荐方式) 目前(Python 3.9 ~ 3.14)最简单、效果最好的方法是用 pip 安装社区维护的汉化包 idcn。 步骤(1

By Ne0inhk
Python-PyQt5 安装与配置教程

Python-PyQt5 安装与配置教程

目录 1. Part1:安装 PyQt5 2. Part2:配置 PyQt5 依赖工具 QtDesigner 和 PyUIC 3. Part3:使用 QtDesigner 设计界面 4. Part4:使用 PyUIC 将设计好的界面转换为 .py 文件 5. Part5:通过代码显示 UI 界面 Part1:安装 PyQt5         使用 PyQt5 开发界面,需要安装两个核心库,直接通过 pip 命令即可完成安装(注意这里针对的python版本是低于3.10的,高于3.10的版本有所变化),命令如下: pip install PyQt5 pip install

By Ne0inhk