21xrx.com
2024-12-22 22:17:34 Sunday
登录
文章检索 我的文章 写文章
C++队列头文件
2023-07-05 01:09:00 深夜i     --     --
C++ 队列 头文件

C++队列是一种先进先出(FIFO)的数据结构,可以存储任意类型的数据。队列主要有入队和出队两个操作,其中入队是向队尾添加一个元素,出队是从队头删除一个元素。在C++中,队列被封装在 头文件中。

头文件中定义了两个主要的类:queue和priority_queue。queue是标准队列,priority_queue是优先级队列。两个类都定义了push()、pop()、front()和back()等方法,用于操作队列中的元素。push()方法将一个元素添加到队列中,pop()方法删除队列的头部元素,front()方法返回队首元素,back()方法返回队尾元素。

queue类的基本用法如下:


#include <queue>

using namespace std;

queue<int> q;

q.push(1); //将元素1加入队列

q.push(2); //将元素2加入队列

q.push(3); //将元素3加入队列

cout<<q.front()<<endl; //输出队列头部元素1

q.pop(); //删除队列头部元素1

cout<<q.front()<<endl; //输出队列头部元素2

cout<<q.back()<<endl; //输出队列尾部元素3

priority_queue类是优先级队列,它的元素会根据优先级进行排序。默认情况下,优先级较高的元素会被放在队列的头部。priority_queue类的基本用法与queue类类似,只是在定义队列的时候需要指定比较器。比较器是一个函数对象,它定义了如何比较元素的优先级。

下面是一个使用priority_queue类的示例:


#include <queue>

#include <functional> //包含比较器函数对象greater

using namespace std;

priority_queue<int, vector<int>, greater<int>> pq; //定义小根堆

pq.push(3);

pq.push(5);

pq.push(1);

cout<<pq.top()<<endl; //输出优先级最高的元素1

pq.pop();

cout<<pq.top()<<endl; //输出优先级最高的元素3

需要注意的是, 头文件定义的队列类不支持迭代器,因此我们无法遍历队列中的元素。如果需要遍历队列中的元素,则需要将队列中的元素转化为数组或向量,再对其进行遍历操作。

总之,C++队列头文件提供了队列和优先级队列的实现,可以方便地处理先进先出的数据结构。在我们进行算法编写时,可以将数据按照队列的方式进行分类和排列,从而达到高效率的目的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复