导图社区 Cpp容器
这是一篇关于C容器的思维导图,主要内容包括:序列式容器,容器适配器(都不支持迭代器),关联式容器,容器使用注意事项。总结了C++中各类容器的使用方法和注意事项,适合作为学习和复习C++容器知识的参考资料。
这是一篇关于c智能指针的思维导图,内容详细介绍了C++中智能指针的相关知识,主要内容包括:vs中内存泄漏的检测,智能指针,适合C++开发者学习和查阅,帮助其更好地理解和使用智能指针进行内存管理。
这是一篇关于Qt是什么的思维导图,主要内容包括:1.Qt介绍,2.Qt 下载与安装,3.Qt Creator,4.Visual Studio,5. Qt 模块解析,6.需要的C 知识。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
C++容器
一、 序列式容器
vector 动态数组
创建 vector<类型> 变量名
访问元素
下标访问-->不抛异常
at方法访问-->会抛异常
查找元素
直接查找-->find方法
删除元素
先查找再删除 erase方法
直接删除 remove方法(只删除一个)
迭代器失效: 插入或删除元素后,原来的迭代器不能继续使用
添加元素
追加元素
push_back -->先构造,然后在拷贝到容器中(效率较低)
emplace_back --> 就地构造,直接传递类的构造函数参数(只构造一次)
插入元素
insert
emplace
deque 双端数组
push_front --> 支持头插
索引访问
data方法与vector的区别
voctor ---> 能获取底层的数组指针(不建议通过这个修改数据)
deque ---> 不能获取底层的数组指针
list 链表
sort ---> 排序(默认升序)
unique ---> 去重
merge ---> 合并两个链表(必须有序)
reversal ---> 反转
二、 容器适配器 (都不支持迭代器)
stack --> 栈容器适配器(先进后出)
入栈 --> push
出栈 --> top(获取栈顶元素)
删除栈顶元素 --> pop
queue --> 队列适配器(先进先出)
入队 --> push
出队 --> front(获取队头顶元素)
删除队头元素 --> pop
priority_queue --> 优先队列(根据优先级(大/小)进出)
出队 --> top(获取队头顶元素)
三、 关联式容器
pair --> 对组(key-value)
map --> 映射
默认自动按键升序排列
指定排序方式按键降序排列(greater(降序))
查找 maps.find (按key查找)
获取元素 maps.at
at 如果元素不存在则抛异常
[ ] 如果元素不存在则插入一个默认的元素
maps.inster
maps.emplace 如果键存在不能插入
maps.multimap 多映射(允许键重复) multimap不支持 at 和 [ ]
set --> 集合(自动排序,自动去重)
哈希映射 unordered_map
四、 容器使用注意事项
所有容器存储的数据, 都必须支持拷贝, 都必须支持默认构造
关联式容器自定义类型作为键必须能支持比较大小
哈希容器自定义类型作为键必须能支持哈希