📅  最后修改于: 2023-12-03 14:59:46.694000             🧑  作者: Mango
在C++ STL中,priority_queue
是一个非常有用的容器,它允许我们在O(log n)的时间内将元素按照优先级进行排序。priority_queue
模板类的基本用法已经在其他文章中介绍过了,这篇文章将重点介绍它的两个成员函数:empty()
和size()
。
empty()
函数是用来判断当前的priority_queue
是否为空的。它返回一个bool值,如果容器为空则返回true,否则返回false。以下是一个示例代码:
#include <iostream>
#include <queue>
using namespace std;
int main() {
priority_queue<int> pq;
cout << "Is the priority queue empty? " << pq.empty() << endl;
pq.push(5);
pq.push(2);
pq.push(7);
cout << "Is the priority queue empty? " << pq.empty() << endl;
return 0;
}
这个程序创建了一个空的priority_queue
,然后输出它是否为空。接着向容器中添加了三个元素,再次输出它是否为空。运行结果是:
Is the priority queue empty? 1
Is the priority queue empty? 0
这说明了empty()
函数的正确用法。
size()
函数是用来获取当前priority_queue
中元素的数量的。它返回一个size_t类型的值。以下是一个示例代码:
#include <iostream>
#include <queue>
using namespace std;
int main() {
priority_queue<int> pq;
cout << "The size of the priority queue is " << pq.size() << endl;
pq.push(5);
pq.push(2);
pq.push(7);
cout << "The size of the priority queue is " << pq.size() << endl;
return 0;
}
这个程序和上一个程序类似,只是把empty()
函数改为了size()
函数。输出结果是:
The size of the priority queue is 0
The size of the priority queue is 3
可以看出size()
函数的用法非常简单。
empty()
和size()
是priority_queue
模板类中最常用的两个成员函数之一。它们都很简单,但是却非常有用。在编写使用priority_queue
的程序时,务必要记住这两个函数的用法,以便更好地操作这个容器。