C++基础:STL之双向队列deque
发布日期:2021-06-30 20:20:27
浏览次数:2
分类:技术文章
本文共 2280 字,大约阅读时间需要 7 分钟。
这篇文章介绍一下STL中队列deque的基本使用方法。目录
双向队列deque
双向队列也是队列,是最为常见的一种数据结构,双向队列在STL中有deque的实现。包含双向队列在内,队列中的元素满足FIFO(先进先出)。主要特点如下:
-
元素需满足FIFO:First In First Out
-
出口端称为队头(Front),入口端称为队尾(Rear)
-
可以使用数组或者链表来存储数据
-
操作主要有入队(Enqueue)和出队(Dequeue)
-
可以根据需要实现循环队列或者双向队列
-
只能在队尾插入数据,在队头删除数据
-
关于队列的说明内容可参看:
头文件和命名空间
#include <deque>
using namespace std;
常用的成员函数
queue函数名 | 用途 | 功能说明 | 时间复杂度 |
---|---|---|---|
size() | 查询遍历 | 获取元素个数 | O(1) |
begin() | 查询遍历 | 获取指向第一个元素的迭代器 | O(1) |
end() | 查询遍历 | 获取指向最后一个元素的迭代器 | O(1) |
front() | 查询遍历 | 获取指向第一个元素的迭代器 | O(1) |
back() | 查询遍历 | 获取指向最后已给元素的迭代器 | O(1) |
push_back | 插入 | 在末尾插入数据x | O(1) |
pop_back | 删除 | 删除最后一个元素 | O(1) |
push_front | 插入 | 在末尾插入数据x | O(1) |
pop_front | 删除 | 删除最后一个元素 | O(1) |
empty | 删除 | 删除所有元素 | O(n) |
注:deque的成员函数主要包括插入和删除,实际对应着队列操作的入队和出队两个操作,然后就是获取元素个数和对头元素的操作,都是负载度为O (1)的操作。和stack相比,上述5个函数的函数名只是front和top有区别,其他函数名一致。
代码使用示例
#include#include using namespace std;void print_element(deque q) { if (!q.empty()) { cout << "Size:" << q.size() << " Queue Top Element : " << q.back() << " Queue:"; } else { cout << "Size:" << q.size() << endl; } deque ::iterator it = q.begin(); while(it != q.end()) cout << *it++; cout << endl;}int main() { deque q; cout << "Queue Element In " << endl; print_element(q); q.push_back('L'); print_element(q); q.push_back('i'); print_element(q); q.push_back('u'); print_element(q); cout << endl << "Queue Element Out " << endl; q.pop_back(); print_element(q); q.pop_back(); print_element(q); q.clear(); print_element(q); q.push_back('i'); print_element(q); q.push_front('L'); print_element(q); q.push_back('u'); print_element(q); q.pop_back(); print_element(q); q.pop_front(); print_element(q); q.pop_front(); print_element(q);}
示例执行结果
Queue Element In Size:0Size:1 Queue Top Element : L Queue:LSize:2 Queue Top Element : i Queue:LiSize:3 Queue Top Element : u Queue:LiuQueue Element Out Size:2 Queue Top Element : i Queue:LiSize:1 Queue Top Element : L Queue:LSize:0Size:1 Queue Top Element : i Queue:iSize:2 Queue Top Element : i Queue:LiSize:3 Queue Top Element : u Queue:LiuSize:2 Queue Top Element : i Queue:LiSize:1 Queue Top Element : i Queue:iSize:0
总结
变长支持、泛化类型、常用功能函数内嵌、可以使用其他多种STL的函数、使用简单,而且也支持迭代器等,都是deque被使用的原因。
转载地址:https://liumiaocn.blog.csdn.net/article/details/109271354 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月14日 04时00分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
美团app人气榜套餐排名数据 1.0版本上线
2019-04-30
美团1-8类人气榜---套餐榜数据
2019-04-30
美团人气榜商家榜
2019-04-30
美团cityId全国城市代码
2019-04-30
美团数城商铺榜
2019-04-30
简化版美团cityId
2019-04-30
for循环输出数组
2019-04-30
将excel中某列不连续的数字批量转换为python数组list
2019-04-30
输出美团cityid
2019-04-30
美团店铺榜,但还需增加列指标:餐饮分类
2019-04-30
mt店铺榜单,增加了类别排序号码
2019-04-30
待更新
2019-04-30
一键式统计8.0
2019-04-30
用心才能做到极致
2019-04-30
Andorid String字符串数组内容动态增加
2019-04-30
基于开源架构的消防灾备系统建设
2019-04-30
PL/SQL Developer 快速补全手写sql语句
2019-04-30
JSP上传文件时判断文件大小
2019-04-30
JAVA中的HTTP请求应用场景
2019-04-30