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

📅  最后修改于: 2023-12-03 14:59:46.694000             🧑  作者: Mango

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

在C++ STL中,priority_queue是一个非常有用的容器,它允许我们在O(log n)的时间内将元素按照优先级进行排序。priority_queue模板类的基本用法已经在其他文章中介绍过了,这篇文章将重点介绍它的两个成员函数:empty()size()

priority_queue :: empty()

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()函数的正确用法。

priority_queue :: size()

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的程序时,务必要记住这两个函数的用法,以便更好地操作这个容器。