news 2026/6/15 18:37:20

嵌入式学习!(一)C++学习-STL(21)-26/1/27

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式学习!(一)C++学习-STL(21)-26/1/27

1. STL(standard Template Library)标准模板库

广义:容器,算法,迭代器 【容器和算法 之间 通过迭代器无缝衔接】

STL几乎所有的代码都采用了模板类或者模板函数

细分六大组件:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器

1.1容器

序列式容器:强调值的排序,序列式容器中的每个元素均有固定的位置

关联式容器:二叉树结构,各元素之间没有严格的物理上的顺序关系

1.2算法:algorithm

质变算法:运算过程中会更改区间内的元素的内容,例如拷贝,替换,删除

非质变算法:运算过程中不会更改区间内的元素的内容,例如查找、计数;

1.3迭代器

每个容器有自己专属的迭代器。

迭代器使用类似于指针

五种:输入、输出、前向、双向、随机访问迭代器(这两个常用)

2.具体例子

容器:vector; 算法:for_each; 迭代器:vector<int>::iterator

可自定义容器数据内容:内部数据为结构体vector<Person> v;

容器内部再嵌套容器 vector < vector< int >> v;

3.string

4.vector

迭代器:iterator

数据结构和数组非常相似,也称为单端数组

区别:vector可以动态扩展 → 找新的更大的空间,原数据拷贝,是否原空间

常用:begin() 第一个元素;end() 最后一个元素再往后一位

5.deque

迭代器:const_iterator

双端数组,可以对头端进行插入删除操作

与vector的区别:

%vector对于头部的插入删除效率低,数据量越大,效率越低

%deque对头部的插入删除速度比vector快

%访问元素时的速度会比deque快

6.stack

先进后出的数据结构,只有一种出口

不允许有遍历行为;栈可以为空,栈可以返回元素个数

入栈:push; 出栈:pop

7.queue

先进先出,有两个出口

入队:push;出队:pop

允许从一端新增数据,从另一端移除数据

只有队头和队尾才能被外界使用,因此不允许有遍历行为

8.list:链表

迭代器:只支持前移和后移(一个一个找),属于双向迭代器

功能:将数据进行链式储存

链表是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。

组成:链表由一系列结点组成。

结点:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

STL中的链表是一个双向循环链表

双向:(每一个结点即记录了下一个节点,又记录了上一个节点)

循环:第一个节点的前 记录了最后一个节点 ; 最后一个节点的后 记录了第一个节点

9.set/multiset

插入时自动排序

set不允许有重复的元素

multiset运行有重复的元素

10 pair对组创建

功能:成对出现的数据,利用对组可以返回两个数据

两种创建方式:

pair<type, type>p (value1, value2);

pair<type, type> p = make_pair( value1, value2);

11.map/multimap

简介:所有元素都是pair(对组);pair第一个元素为key(键值),起索引作用,第二个元素为value(实值);所有元素都会根据元素的键值自动排序(关联式容器,二叉树实现)

可通过key快速找到value

map不允许有重复的key值;multimap允许有重复的key值

构造:map<int, int > m; m.insert(part<int , int>(1,10));

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:15:14

LLaVA-v1.6-7b部署案例:中小企业私有化部署图文智能客服系统

LLaVA-v1.6-7b部署案例&#xff1a;中小企业私有化部署图文智能客服系统 1. 为什么选择LLaVA-v1.6-7b做智能客服 对于中小企业来说&#xff0c;搭建一个能同时理解图片和文字的智能客服系统&#xff0c;过去需要投入大量开发资源和计算成本。LLaVA-v1.6-7b的出现改变了这一局…

作者头像 李华
网站建设 2026/6/15 10:14:32

VibeVoice ProGPU算力优化部署:4GB显存运行+8GB高负载推理双模式配置

VibeVoice ProGPU算力优化部署&#xff1a;4GB显存运行8GB高负载推理双模式配置 1. 为什么“零延迟”对语音应用如此关键&#xff1f; 你有没有遇到过这样的场景&#xff1a;在做实时客服对话时&#xff0c;用户刚说完问题&#xff0c;系统却要等2秒才开始说话&#xff1f;或…

作者头像 李华
网站建设 2026/6/15 10:12:42

Campus-iMaoTai:解决茅台预约难题的自动化解决方案

Campus-iMaoTai&#xff1a;解决茅台预约难题的自动化解决方案 【免费下载链接】campus-imaotai i茅台app自动预约&#xff0c;每日自动预约&#xff0c;支持docker一键部署 项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai 在数字化时代&#xff0c;…

作者头像 李华
网站建设 2026/6/15 12:20:24

Glyph智能家居控制:手势识别推理部署实战

Glyph智能家居控制&#xff1a;手势识别推理部署实战 1. 为什么是Glyph&#xff1f;从“看懂图片”到“理解动作” 你有没有想过&#xff0c;家里的智能设备能不能直接“看懂”你的手势&#xff1f;比如抬手一挥就关灯&#xff0c;握拳停空调&#xff0c;张开手掌调亮灯光——…

作者头像 李华
网站建设 2026/6/15 12:16:03

Z-Image-ComfyUI进阶玩法:自定义工作流搭建

Z-Image-ComfyUI进阶玩法&#xff1a;自定义工作流搭建 你是否已经用过Z-Image-Turbo一键生成海报&#xff0c;也试过Z-Image-Edit把产品图换成节日主题&#xff1f;但每次换一个需求&#xff0c;都要重新点开不同工作流、手动调整十几个节点、反复检查CLIP编码器和VAE解码器的…

作者头像 李华
网站建设 2026/6/15 12:20:32

Vin象棋:3个场景让你的棋力提升200%

Vin象棋&#xff1a;3个场景让你的棋力提升200% 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 作为基于Yolov5的中国象棋智能辅助工具&#xff0c;Vin象棋…

作者头像 李华