软件信息网 移动端开发 c++容器适配器

c++容器适配器

标准容器->容器适配器
什么叫适配器?
1:适配器底层没有自己的数据结构,它是另外一个容器的封装,它的方法,
全部由底层依赖的容器进行实现的.像标准库中的stack 如下图

2:没有实现自己的迭代器

c++容器适配器插图

容器适配器 stack,queue,priotity_queue 没有迭代器

stacks1; 栈, 队尾 后进先出
s1.push();入栈
s1.pop();出栈
s1.empty();判断空
s1.top();栈顶元素
s1.size();个数

queue que; 队列 先进先出,后进后出 ,队头出,队尾入
que.pop();
que.font();
que.back();查看队尾元素
que.empty();判断对空
que.size();查个数

priority_que pque;优先队列
pque.push(); 入优先级队列
pque.top();//按优先级出队
pque.top()查看队顶元素
pque.empty();判断空
pque.size();查元素个数

C++库中stack默认容器依赖的是deque,为什么不用vector?
1:初始内存效率vector太低了,扩容顺序0->1->2->4->8->16 而deque的二维数组默认大小4096/sizeof(T)
2:对于queue需要支持尾部插入,头部删除都是o(1),vector做不到O(1)
3:vector需要大片的连续的内存,而deque只需要分段的内存,当存储大量的数据时,deque对内存的利用率更高

C++库中queue默认容器依赖的是deque,为什么不用vector?

C++库中priority_que pque;默认容器依赖的是vector,为什么?
priority_que 底层默认把数据组成一个大根堆结构,元素之间的关系是通过下标计算,而vector连续的存储空间,通过下标存取很快

作者: 软件定制开发

李铁牛,一直致力于企业客户软件定制开发,计算机专业毕业后,一直从事于互联网产品开发到现在。系统开发,系统源码:15889726201
上一篇
下一篇
联系我们

联系我们

15889726201

在线咨询: QQ交谈

邮箱: 187395037@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部