C++容器(vector、deque、list、map)
1.C++继承
2.C++容器(vector、deque、list、map)
3.【C++ Primer】2.1 基本内置类型4.【C++ Primer】第二章(2 ~ 6节)5.【whale-starry-stl】01天 list学习笔记(1) vector:将元素置于一个动态数组中,可以随机存储元素(也就是用索引直接存取)。
数组尾部添加或删除元素非常迅速。但在中部或头部就比较费时。
*代码演示:*
取:
at在下标越界时会抛出异常,我们能捕获异常进行处理;而[]下标越界会让程序直接终止;
构造函数:
cbegin, cend, crbegin, crend返回的是常量迭代器,不能通过迭代器修改vector元素的值。
插入(insert):值得注意的是,insert函数返回值是一个迭代器,指向新添加的第一个元素:
删除(erase):
删除一段内容时,前闭后开
front函数,返回第一个元素的引用
crbegin(),crend() 倒着输出
(2) deque:“double end queue”的缩写,也就是双端队列。
*deque的实现相比于vector有些复杂,但本质仍然是优化过的动态数组,只不过相比于单纯的动态数组,在前面添加或删除元素非常快了。*
*可以随机存储元素。*头部和尾部添加或删除元素都非常快(略慢与vector)。但在 中间插入元素比较费时(和vector差不多)。
*代码演示:*
可以在前面添加和删除、可以随机存取元素([]、at):
(3) list:本质就是链表,所以自然具有了链表的属性。
*不能随机存取元素(也就是list无法用索引存取元素)*。在任何位置插入和删除元素都比较迅速。(在任何位置插入删除元素的时间相同,在元素头部操作慢于deque,在元素尾部操作慢于deque和vector)
(4) string:
(5) map/multimap:使用“红黑树”实现,是一种高度平衡的二叉树。
内部元素是成对的“key/value”,也就是“键值/实值”,内部元素依据其键值自动排序,map内部相同的键值只能出现一次,multimap则可以出现多次。
*代码演示:*
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)