STL库

近容器:char buff[1024] string bitset(操纵位)
这里写图片描述
Vector自定义类型实例化 ——- T()伪构造
Vector内置类型实例化 ——– 0
这里写图片描述
Vector和deque区别:
搜索和中间插入时用vector
在头部插入用deque,vector成倍增长,可能会造成空间浪费。
Vector只有push_back ()和 pop_back()而deque还有push_front()和Pop_front()
容器
这里写图片描述

集合(set)和映射(map)的底层都是一个平衡的二叉树,插入后自动排序
集合:单重集合set,多重集合 multiset
集合中的键和值是等价的
映射:一对一映射:map, 一对多集合 multimap
键和值是对应的,多重集合中可以有多个重复的键值
映射中由于键和值是分开的,便于存储在树的节点中,将其打包为一个数据结构pair<first ,second>
在集合和映射中:成员方法效率比全局方法快。
STL库中没有修改元素这一函数方法,若要实现修改,可进行插入删除来间接完成,因为修改元素会打破红黑树的平衡。
如果集合中的元素是自定义的类型,那就要自己实现排序
STL库中的val_type,是对模板参数类型的typedef重新定义
map在调用[ ]中括号运算符重载的时候,由于只知道key,而不知道对应的值,因此会使用默认构造函数返回对象,所以要给value的类实现一个默认的构造函数。

容器适配器的实质是对标准容器的封装。(源代码见标准库)
Stack 底层调用的是 deque
Queue 底层调用的是 deque
Priority_Queue 底层调用的是 vector

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章