跳到主要内容

std::priority_queue empty() 方法

// (1) Const version only
bool empty() const;

// (2) Const version only
[[nodiscard]] bool empty() const

检查容器是否没有元素,即 c.empty() 是否为真。

参数

(无)

返回值

如果容器为空,则为 true,否则为 false

复杂度

常数 - O(1)

为什么是 [[nodiscard]]

[[nodiscard]] 属性是一个属性,它会在函数被调用且其结果被丢弃时引发编译器警告。

之所以将 nodiscard 仅应用于 empty 方法,是因为程序员可能会将形容词 empty(表示 - **这个容器是空的吗?**)与动词 empty(表示 - **请帮我清空这个容器。**)混淆。

异常

(无)

示例

Main.cpp
#include <algorithm>
#include <iostream>
#include <queue>

int main()
{
std::cout << std::boolalpha;

std::priority_queue<int> container;

std::cout << "Initially, container.empty(): " << container.empty() << '\n';

container.push(42);
std::cout << "After adding elements, container.empty(): " << container.empty() << '\n';
}
输出
Initially, container.empty(): true
After adding elements, container.empty(): false

std::priority_queue empty() 方法

// (1) Const version only
bool empty() const;

// (2) Const version only
[[nodiscard]] bool empty() const

检查容器是否没有元素,即 c.empty() 是否为真。

参数

(无)

返回值

如果容器为空,则为 true,否则为 false

复杂度

常数 - O(1)

为什么是 [[nodiscard]]

[[nodiscard]] 属性是一个属性,它会在函数被调用且其结果被丢弃时引发编译器警告。

之所以将 nodiscard 仅应用于 empty 方法,是因为程序员可能会将形容词 empty(表示 - **这个容器是空的吗?**)与动词 empty(表示 - **请帮我清空这个容器。**)混淆。

异常

(无)

示例

Main.cpp
#include <algorithm>
#include <iostream>
#include <queue>

int main()
{
std::cout << std::boolalpha;

std::priority_queue<int> container;

std::cout << "Initially, container.empty(): " << container.empty() << '\n';

container.push(42);
std::cout << "After adding elements, container.empty(): " << container.empty() << '\n';
}
输出
Initially, container.empty(): true
After adding elements, container.empty(): false