C语言-队列(queue)的应用

发布于 / 数据结构与算法 / Comments Off on C语言-队列(queue)的应用

0x00、queue简介

queue,即"队列",和我们平时的"排队"有所类似,是一个先进先出的容器。

一张图更好理解:


可以理解为,queue为一个容器,放入1,2,3,4四件物品,则出队顺序仍然是1,2,3,4

C++STL中提供了queue的库函数,可以方便我们实现queue的数据结构。

0x01、使用之前

首先仍然要引用头文件+定义命名空间。

#include <queue>
using namespace std;

接着可以定义一个queue容器了:

queue<ElementType> q;

0x02、操作

将数据压入队列,称之为入队。可以使用push函数入队。

q.push(VARIABLE);

queue是一个先进先出,具有限制性的数据结构,所以只能通过front()来访问队首元素,或者通过back()访问队尾元素。

ElementName VariabelName = q.front();
ElementName VariabelName = q.back();

可以使用pop函数,令先进入的队首元素出队。

q.pop();

我们还可以使用empty函数,判断queue是否为空

bool isEmpty = q.empty();

使用size()可以返回queue中元素个数

int sum = q.size();

0x03、举例

#include <iostream>
#include <queue>
using namespace std;

int main(){
  queue<int> q;
  for(int i = 0; i < 5; i++){
    q.push(i);
    cout << "成功将" << i << "入队" << endl;
  }
  cout << endl;
  while(!q.empty()){
    cout << "当前队首:" << q.front() << "\t当前队尾:" << q.back();
    cout << "\t当前队列大小:" << q.size() << endl;
    q.pop();
  }
  return 0;
}

运行结果:

转载原创文章请注明,转载自: 斐斐のBlog » C语言-队列(queue)的应用
评论已关闭