STL—queue

简介: queue翻译为队列,在STL中实现了一个先进先出的容器,意思是先插入到队列中的元素先出队,我们也可以通过数组去模拟一个队列,具体操作见博客:用数组模拟队列,本博客讲述STL中的queue的应用,要想使用queue,需要添加头文件:#include <queue>

文章目录

一、什么是queue

二、queue的操作

1.queue的定义

2.queue容器内元素的访问

3.queue中的函数

(1)push()

(2)front(),back()

(3)pop()

(4)empty()

(5)size()


一、什么是queue

queue翻译为队列,在STL中实现了一个先进先出的容器,意思是先插入到队列中的元素先出队,我们也可以通过数组去模拟一个队列,具体操作见博客:用数组模拟队列,本博客讲述STL中的queue的应用,要想使用queue,需要添加头文件:#include <queue>


二、queue的操作

1.queue的定义

queue<typename> name;

2.queue容器内元素的访问

由于队列queue是一种先进先出的限制性的数据结构,因此STL中只能通过front()来访问队首元素,或是通过back()来访问队尾元素,push()是入队操作

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue<int> q;
    for (int i = 1; i <= 5; i ++ ) q.push(i);
    cout << q.front() << ' ' << q.back();
    return 0;
}

输出结果为:1 5

3.queue中的函数

(1)push()

q.push(x);把x入队,时间复杂度为O(1),实例见queue容器内元素的访问


(2)front(),back()

q.front();,q.back();可以分别获得队首元素和队尾元素,时间复杂度为O(1),实例见queue容器内元素的访问


(3)pop()

q.pop();是令队首元素出队,时间复杂度为O(1)

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue<int> q;
    for (int i = 1; i <= 5; i ++ ) q.push(i);
    for (int i = 1; i <= 4; i ++ ) q.pop();
    cout << q.front();
    return 0;
}

输出结果为:5

(4)empty()

q.empty();用来检测queue是否为空,如果是空则返回true,否则返回false,时间复杂度为O(1)

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue<int> q;
    if(q.empty()) cout << "EMPTY" << endl;
    else cout << "NOT EMPTY" << endl;
    for (int i = 1; i <= 5; i ++ ) q.push(i);
    if(q.empty()) cout << "EMPTY" << endl;
    else cout << "NOT EMPTY" << endl;
    return 0;
}

输出结果为:

EMPTY

NOT EMPYTY

(5)size()

q.size();用来返回queue内元素的个数,时间复杂度为O(1)

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    queue<int> q;
    for (int i = 1; i <= 5; i ++ ) q.push(i);
    cout << q.size();
    return 0;
}

输出结果为:5



目录
相关文章
|
机器学习/深度学习 存储 Linux
CentOS 7 部署 KVM 虚拟化
CentOS 7 部署 KVM 虚拟化
1102 0
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
9月前
|
自然语言处理 API 数据安全/隐私保护
手把手教你搭建 cssbuy 淘宝代购系统
随着全球电商的兴起,淘宝成为海外用户青睐的购物平台,但语言、支付和物流等问题限制了其直接使用。CSSBuy 等淘宝代购系统应运而生,为海外用户提供便捷的购物体验。本文详细解析如何搭建类似系统,涵盖需求分析与功能模块设计。目标用户包括海外华人、留学生及外国消费者,核心功能涉及商品搜索、代购下单、支付集成、物流管理、客服售后及多语言支持等。系统模块包括用户管理、商品管理、购物车、订单管理、支付管理、物流管理、客服售后和多语言模块,全面满足海外用户的购物需求。
|
运维 安全 Cloud Native
阿里云云安全中心全面解析
阿里云云安全中心作为一款集持续监测、深度防御、全面分析、快速响应能力于一体的云上安全管理平台,为企业提供了全方位的安全保障。本文将详细介绍阿里云云安全中心的功能、应用场景、收费标准以及购买建议,帮助您更好地了解和利用这一强大的安全工具。
阿里云云安全中心全面解析
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
543 8
|
人工智能 架构师 大数据
广西广电X阿里云:共同成立全媒体AI实验室!
广西广电X阿里云:共同成立全媒体AI实验室!
418 5
|
算法 5G 数据安全/隐私保护
3D-MIMO信道模型的MATLAB模拟与仿真
该研究利用MATLAB 2022a进行了3D-MIMO技术的仿真,结果显示了不同场景下的LOS概率曲线。3D-MIMO作为5G关键技术之一,通过三维天线阵列增强了系统容量和覆盖范围。其信道模型涵盖UMa、UMi、RMa等场景,并分析了LOS/NLOS传播条件下的路径损耗、多径效应及空间相关性。仿真代码展示了三种典型场景下的LOS概率分布。
590 1
|
分布式计算 Hadoop Java
Hadoop3.2.2安装 windows版
Hadoop3.2.2安装 windows版
1005 0
|
存储 负载均衡 Java
如何设计一个高可扩展的分布式架构?
如何设计一个高可扩展的分布式架构?
|
JavaScript Java 测试技术
基于SpringBoot+Vue的音乐播放器的详细设计和实现
基于SpringBoot+Vue的音乐播放器的详细设计和实现
350 0