STL 浅入 容器 (一)

本文详细介绍了C++标准模板库(STL)中的多种容器类型,包括序列式容器如vector、list、deque等,以及关联式容器如stack、queue、priority_queue等,并对比了它们的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STL里的容器按元素在容器内的排序方式,分序列式和关联式。


C++中的array就是一个序列式容器,其中的元素集合呈线性关系。

STL中的序列式容器:<vector> <list> <deque> <stack> <queue> <priority_queue>等。其中stack和queue在技术上称之为适配器,即内部机制采用其他容器实现。

1.Vector

特征:类似数组,但可以空间大小自动随元素的数量改变。

vector的迭代器:由于其使用的是连续线性的空间,所以其迭代器实际就是原生指针,且为 Random Acccess Iterator.

注意:插入、删除操作会造成原有迭代器的失效。

2.List

特征:内存开销小适用广,因为是一个带头结点的环状双向链表,所以对任何位置的插入或删除需要的时间为常数(随数据规模增大)

list的迭代器:使用特定的iterator类,其为Bidirectional Iterator

注意:list不能使用STL提供的通用sort算法。因为sort算法只接受Random Access Iterator,所以提供了自己的sort算法。

3.Deque(双向队列)

特征:没有容量的概念,因为它是以分段的连续空间组合而成,随时可以增加一段空间拼接起来。

deque的迭代器:提供Random Acccess Iterator,但并不是原生指针。其实现复杂,也影响到相关算法的效率。

注意:非必要,应尽量使用vector而不是deque.的确需进行排序时,可以先将元素复制到vector,排序后再复制回deque.

4.Stack

特征:先进后出的数据结构,只可以在顶端进行元素操作。

stack不支持对元素的遍历,因此没有迭代器。

5.Queue

特征:先进先出的数据结构,实现方案和stack基本一样

6.Heap

STL定义了一些heap操作的算法:包括建堆,push_heap,pop_heap,sort_heap等

注意:heap并不是stl中的容器,以vector作为完全二叉树的存储结构,加上一些heap算法

7.Priority Queue

特征:拥有权值概念的queue,加入的元素按权值大小排列。

注意:priority_queue也是container adapter,它以vector为存储结构,再以heap算法进行处理:priority_queue的元素存放在一个vector当中,按元素权值排列成一个heap。


本文仅作学习记录,无任何商用目的。


内容概要:本文介绍了奕斯伟科技集团基于RISC-V架构开发的EAM2011芯片及其应用研究。EAM2011是款高性能实控制芯片,支持160MHz主频和AI算法,符合汽车电子AEC-Q100 Grade 2和ASIL-B安全标准。文章详细描述了芯片的关键特性、配套软件开发套件(SDK)和集成开发环境(IDE),以及基于该芯片的ESWINEBP3901开发板的硬件资源和接口配置。文中提供了详细的代码示例,涵盖钟配置、GPIO控制、ADC采样、CAN通信、PWM输出及RTOS任务创建等功能实现。此外,还介绍了硬件申领流程、技术资料获取渠道及开发建议,帮助开发者高效启动基于EAM2011芯片的开发工作。 适合人群:具备嵌式系统开发经验的研发人员,特别是对RISC-V架构感兴趣的工程师和技术爱好者。 使用场景及目标:①了解EAM2011芯片的特性和应用场景,如智能汽车、智能家居和工业控制;②掌握基于EAM2011芯片的开发板和芯片的硬件资源和接口配置;③学习如何实现基本的外设驱动,如GPIO、ADC、CAN、PWM等;④通过RTOS任务创建示例,理解多任务处理和实系统的实现。 其他说明:开发者可以根据实际需求扩展这些基础功能。建议优先掌握《EAM2011参考手册》中的关键外设寄存器配置方法,这对底层驱动开发至关重要。同,注意硬件申领的效性和替代方案,确保开发工作的顺利进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值