C++ STL中的priority_queue::empty()和priority_queue::size()

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中的元素。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程