C++

C++  - STL - queue 整理笔记

基本概念:

  queue是一种先进先出的数据结构,有两个出口,一端新增元素,另一端移除元素;

队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为

  c++队列模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型。

头文件

  #include<queue>

定义一个queue类队列

  queue<类型> 名字;

相关函数

1)push() 在末尾加入一个元素

 

#include <iostream>
#include <queue>
using namespace std;
int main()
{
	queue<int> q;
	q.push(1);
	q.push(2);
	cout<<q.front()<<endl;
	return 0;
}

  输出:1

2)front()返回队列第一个元素的引用。注意:只是返回第一个元素的值,并没有删除!

 

#include <iostream>
#include <queue>
using namespace std;
int main()
{
	queue<int> q;
	q.push(1);
	q.push(2);
	cout<<q.front()<<endl;
	return 0;
}

  输出:1

3)pop()函数删除队列的一个元素

 

#include <iostream>
#include <queue>
using namespace std;
int main()
{
	queue<int> q;
	q.push(1);
	q.push(2);
	q.pop();
	cout<<q.front()<<endl;
	return 0;
}

  输出:2

4)empty()函数,如果队列为空,返回true(1),如果队列不为空,否则返回flase(0)。

 

#include <iostream>
#include <queue>
using namespace std;
int main()
{
	queue<int> q;
	q.push(18);
	cout<<"队列第一个(唯一)元素:"<<q.front()<<endl;
	cout<<"此时判断返回值"<<q.empty()<<endl;
	q.pop();
	cout<<"剔除元素后,队列第一个值(没有):"<<q.front()<<endl; 
	cout<<"此时判断返回值"<<q.empty()<<endl;
	return 0;
}

  

  输出:

  队列第一个(唯一)元素:18
  此时判断返回值0
  剔除元素后,队列第一个值(没有):0
  此时判断返回值1

5)back()返回一个引用,指向队列的最后一个元素。注意:只是返回最后一个元素的值,并没有删除!

 

#include <iostream>
#include <queue>
using namespace std;
int main()
{
	queue<int> q;
	q.push(1);
	q.push(2);
	cout<<q.back()<<endl;
	return 0;
}

  输出:2

6)size() 返回队列中元素的个数

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

  输出:1

原文地址:https://www.cnblogs.com/yxbl/p/12275353.html