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



目录
相关文章
|
数据格式
Front Immunol 复现 | 4. 使用estimate包评估肿瘤纯度
Front Immunol 复现 | 4. 使用estimate包评估肿瘤纯度
937 0
Front Immunol 复现 | 4. 使用estimate包评估肿瘤纯度
|
机器学习/深度学习 存储 Linux
CentOS 7 部署 KVM 虚拟化
CentOS 7 部署 KVM 虚拟化
982 0
|
6月前
|
自然语言处理 API 数据安全/隐私保护
手把手教你搭建 cssbuy 淘宝代购系统
随着全球电商的兴起,淘宝成为海外用户青睐的购物平台,但语言、支付和物流等问题限制了其直接使用。CSSBuy 等淘宝代购系统应运而生,为海外用户提供便捷的购物体验。本文详细解析如何搭建类似系统,涵盖需求分析与功能模块设计。目标用户包括海外华人、留学生及外国消费者,核心功能涉及商品搜索、代购下单、支付集成、物流管理、客服售后及多语言支持等。系统模块包括用户管理、商品管理、购物车、订单管理、支付管理、物流管理、客服售后和多语言模块,全面满足海外用户的购物需求。
|
9月前
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
458 13
|
10月前
|
运维 安全 Cloud Native
阿里云云安全中心全面解析
阿里云云安全中心作为一款集持续监测、深度防御、全面分析、快速响应能力于一体的云上安全管理平台,为企业提供了全方位的安全保障。本文将详细介绍阿里云云安全中心的功能、应用场景、收费标准以及购买建议,帮助您更好地了解和利用这一强大的安全工具。
阿里云云安全中心全面解析
|
11月前
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
426 8
|
11月前
|
人工智能 架构师 大数据
广西广电X阿里云:共同成立全媒体AI实验室!
广西广电X阿里云:共同成立全媒体AI实验室!
308 5
|
分布式计算 Hadoop Java
Hadoop3.2.2安装 windows版
Hadoop3.2.2安装 windows版
828 0
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(下)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
325 0