STL之Queue容器

  1. 概念

队列是一种先进先出的数据结构。队列也是我们日常项目中使用最多存储方式。STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。

  1. 头文件

头文件:#include<queue>

  1. 初始化

格式:

explicit queue (const container_type& ctnr = container_type());

我们以char型和int型参数举例创建

queue<int> q;    //创建一个空的没有数据的队列q
queue<char> q;     

注:标准的队列创建方法是直接创建空队列再进行其他的操作

4. 迭代器

栈和队列都属于一种特殊的数据结构,只能通过访问顶层数据并不断剔除数据的方法进行全部访问,因此没有直接的迭代器

5. 常用接口

  1. 获取队列的大小-size()

函数原型:size_type size() const;

返回值为队列元素个数

cout<<q.size()<<endl;   //直接返回队列q的元素个数
  1. 队列的插入-push()

进行入队操作,在队尾处进行插入

函数原型:void push (const value_type& val);

q.push(10);  //往队列q队尾插入元素10
3.出队-pop()

进行出队操作,在对头出进行弹出

函数原型:void push (const value_type& val);

q.pop();  //取出队列头部元素
4.访问队首元素-front()

访问对头元素,可以返回其数值,也可以进行相应的操作,这里更加建议多使用front()访问队头数据,因为我们进行出队操作均是从队头进行出队的

函数原型:

value_type& front();

const value_type& front() const

cout<<q.front()<<endl;   //输出队列q队首内容
5.访问队尾元素-back()

访问队尾元素(日常使用很少)

函数原型:

value_type& back();

const value_type& back() const;

    cout<<q.back()<<endl;  //输出队尾内容
6.判断是否为空-empty

返回一个bool类型的值,只存在真和假,当队列为空时为真,不为空时为假

函数原型:

bool empty() const;

 if(q.empty())
 {
    cout<<"is empty()"<<endl;
 }
 else
 {
    cout<<"not empty()"<<endl;
  }
 

6.示例代码

include<iostream>、
#include<queue>
using namespace std;
int main()
{
    //创建一个空的没有数据的队列q
    queue<int> q;   
    //直接返回队列q的元素个数
    cout<<"队列大小为:"<<q.size()<<endl;   
    
    //往队列q队尾插入元素10,20
    q.push(10); 
    q.push(20); 
     
    cout<<"插入元素后队列大小为:"<<q.size()<<endl;   
    cout<<"此时队首元素为:"<<q.front()<<endl; 
    //访问此时队列q队尾元素
    cout<<"此时队尾元素为:"<<q.back()<<endl; 
    //取出队首元素
    q.pop();
    //访问取出后的队首元素
    cout<<q.front()<<endl;  
    
    //判断此时队列是否为空
     if(q.empty())
     {
        cout<<"is empty()"<<endl;
     }
     else
     {
        cout<<"not empty()"<<endl;
     }
     
    return 0;
}

运行截图如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值