C++ STL中的priority_queue::empty()和priority_queue::size()
在C++ STL中,priority_queue是一个非常有用的容器,它可以按照一定顺序存储元素,同时还可以随时取出其中优先级最高的元素。priority_queue实际上是一个堆,它的元素默认按照大顶堆排序,即优先级最高的元素存储在堆的根节点,优先级次之的元素存储在根节点的子节点中,以此类推。
使用priority_queue时,我们常常需要查询它是否为空以及它中元素的个数。在C++ STL中,priority_queue类提供了empty()和size()两个方法来实现这个功能。
empty()方法
empty()方法是一个空函数,它不接受参数,返回值是一个布尔类型。如果priority_queue中没有任何元素,empty()方法返回true,否则返回false。
下面是使用empty()方法的示例代码:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int> pq;
if (pq.empty())
cout << "Priority queue is empty." << endl;
else
cout << "Priority queue is not empty." << endl;
return 0;
}
上述代码创建了一个空的priority_queue对象pq,并且通过empty()方法判断它是否为空。由于pq中没有任何元素,empty()方法的返回值是true,因此程序输出“Priority queue is empty.”。
size()方法
size()方法也是一个空函数,它不接受参数,返回值是priority_queue中元素的个数。
下面是使用size()方法的示例代码:
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int> pq;
pq.push(3);
pq.push(1);
pq.push(4);
cout << "Size of priority queue: " << pq.size() << endl;
return 0;
}
上述代码创建了一个空的priority_queue对象pq,并向其中添加三个元素。通过调用size()方法,我们可以查询pq中元素的个数。由于pq中已经添加了三个元素,因此size()方法返回值是3,程序输出“Size of priority queue: 3”。
需要注意的是,在使用priority_queue时,我们只需要将元素插入到其中,它会自动根据元素的大小排序。同时,我们可以通过pop()方法取出最高优先级的元素,在实际开发中非常方便。
结论
在C++ STL中,priority_queue::empty()和priority_queue::size()是两个非常有用的方法,它们可以帮助我们判断一个priority_queue对象是否为空,并查询其中元素的个数。在实际开发中,我们可以充分利用这两个方法,来方便地管理priority_queue中的元素。