C++ queue队列 (详细)

1.在头文件中定义(在程序开头输入#include < queue >)
2.队列是一种特殊的线性表,是一种**先进先出(FIFO)**的数据结构。

它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。

进行插入操作的端称为队尾,进行删除操作的端称为队头。

队列中没有元素时,称为空队列。

在队列这种数据结构中,最先插入在元素将是最先被删除;

反之最后插入的元素将最后被删除,因此队列又称为“先进先出”

3. 成员函数:
q.empty()

判断队列q是否为空,当队列q空时,返回true;否则为false(值为0(false)/1(true))。

 q.size()

访问队列q中的元素个数。不可写成sizeof(q)size(q)

 q.push()

会将一个元素a置入队列q中

 q.front()

返回队列q内的第一个元素(也就是第一个被置入的元素)(不可写成front(q))

 q.back()

会返回队列q中最后一个元素(也就是最后被插入的元素)(不可写成back(q))

 q.pop()

会从队列q中移除第一个元素。(不可写成pop(q))

**注意:**pop()虽然会移除第一个元素,但是并不返回它。front()和back()返回一个元素但并不移除该元素。

在stack库中的top()函数与queue很类似,但是stack中要返回元素时,只能返回最后一个元素,且函数名不一样(stack中为s.top()),需要区分。

示例

#include <cstdlib>
#include <iostream>
#include <queue>
using namespace std;
int main()
{
    int e,n,m;
    queue<int> q1;//定义
    for(int i=0;i<10;i++)
       q1.push(i);//入队
    if(!q1.empty())//是否为空队列
        cout<<"dui lie  bu kong\n";
    n=(int)q1.size();//队列大小
    cout<<n<<endl;
    m=q1.back();//取队列最后一个元素
    cout<<m<<endl;
    for(int j=0;j<n;j++)
    {
       e=q1.front();//取队列第一个元素
       cout<<e<<" ";
       q1.pop();//删除队列第一个元素(最先入队的元素)
    }
    cout<<endl;
    if(q1.empty())
        cout<<"dui lie  bu kong\n";
    system("PAUSE");
    return 0;
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值