C++ STL 注意点
1、存储内存
所有的STL的容器的元素都是存储在堆中,所有的内存的开辟和释放都是容器自己解决的。
整体内存分为:
堆区域
栈区域
全局存储区:这其中BSS的没有初始化; DATA是初始化后的变量。
文字常量区
程序代码区
2、常用的STL 容器总结
(1)序列容器:一般常用的。
vector:动态顺序容器。
注意每次push元素,如果个数超过当前的capxxx容量值,会重新分配内存,内存是连续的;重新分配的时候之前的迭代器全部失效; 再次分配的时候,分配的大小是之前的1.5倍。
list:双向链表,可在两头插入和删除
stack:栈,LIFO后进先出结构
deque:双端队列
queue:单端队列
priority_queue:优先队列,常用于实现数据结构中的堆结构
1538032058323
(2)关联容器
set:唯一存储的,和python中的set一致的
multiset:和set一样的的,但是键值不是唯一的
hash_set: 基于hash的set,键值唯一的
hash_multiset:基于hash的multiset,键值可以不唯一
map:字典,key值是唯一的,按照键值的升序排列
multimap:与map相同,但是键值不唯一,按照键值的升序排列
hash_map:与map相同的,排序按照hash键值排序的,键值是唯一的
hash_multimap:键值不唯一,其余和hash_map是相同的。
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询