<五>详解容器适配器
标准容器->容器适配器
什么叫适配器?
1:适配器底层没有自己的数据结构,它是另外一个容器的封装,它的方法,
全部由底层依赖的容器进行实现的.像标准库中的stack 如下图
2:没有实现自己的迭代器
容器适配器 stack,queue,priotity_queue 没有迭代器
stack
s1.push();入栈
s1.pop();出栈
s1.empty();判断空
s1.top();栈顶元素
s1.size();个数
queue
que.pop();
que.font();
que.back();查看队尾元素
que.empty();判断对空
que.size();查个数
priority_que
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
priority_que
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本