STL的简单了解

STL并非全是标准库,比如string,但也约定俗成为标准库

六大部件:

算法   容器   适配器   迭代器   仿函数   分配器

string :字符串, 可与字符串直接相加进行拼接,查找(find), 插入(insert),截取(substr),替换(replace)

vector :动态数组,扩容大小取决于编译器

stack :栈,基于双端队列的适配器,压入弹出判空栈顶

queue:队列,基于双端队列的适配器,压入弹出头尾判空

deque:双端队列, 内存空间并非连续,但是所有单位空间由一块指针表维护,每次访问队列内的元素时,其实访问的是该指针指向的空间,头尾各压入弹出判空

priority_queue:优先队列,堆存储,操作均为对数级,压入弹出堆顶,默认大顶堆,默认小于号排序,可重载小于号或者封装重载类,小顶堆有封装好的比较类,greater<int>,引入文件<functional>

set : 集合,默认排序去重,通常使用红黑树存储,操作均为对数级,插入删除判空(count)

map:键值对,对:pair<键类,值类>,pair.first/second进行访问,set就是没有值的map(理解)

默认红黑树,根据键排序去重,插入(insert(make_pair)),查找删除

中括号[ ] : 访问键值操作,访问不存在自动插入然后默认初始化,应该避免频繁使用中括号的习惯,因为红黑树每次查找都是O(logn)级,数组下标访问为O(1)级,两者不同应该避免

multiset/map:不去重存储

unorderset/map : 无序存储,哈希表存储,拉链法链式存储

unorder_multiset/map : 不去重无序存储

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值