跳到主要内容

std::unordered_map empty() 方法

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

// Non const version only
[[nodiscard]] bool empty() const noexcept;

检查容器是否没有元素,即 begin() == end()

参数

(无)

返回值

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

复杂度

常数 - O(1)

为什么是 [[nodiscard]]

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

之所以仅将 `nodiscard` 应用于 `empty` 方法,是因为程序员很可能会混淆形容词 `empty`(意为“此容器是否为空?”)与动词 `empty`(意为“请帮我清空此容器”)。

异常

(无)

示例

Main.cpp
#include <unordered_map>
#include <iostream>
#include <utility>

int main()
{
std::unordered_map<int, int> numbers;
std::cout << std::boolalpha;
std::cout << "Initially, numbers.empty(): " << numbers.empty() << '\n';

numbers.emplace(42, 13);
numbers.insert(std::make_pair(13317, 123));
std::cout << "After adding elements, numbers.empty(): " << numbers.empty() << '\n';
}
输出
Initially, numbers.empty(): true
After adding elements, numbers.empty(): false
本文来源于 此 CppReference 页面。为改进或编辑偏好可能对其进行了修改。点击“编辑此页面”查看对本文档的所有更改。
悬停查看原始许可证。

std::unordered_map empty() 方法

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

// Non const version only
[[nodiscard]] bool empty() const noexcept;

检查容器是否没有元素,即 begin() == end()

参数

(无)

返回值

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

复杂度

常数 - O(1)

为什么是 [[nodiscard]]

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

之所以仅将 `nodiscard` 应用于 `empty` 方法,是因为程序员很可能会混淆形容词 `empty`(意为“此容器是否为空?”)与动词 `empty`(意为“请帮我清空此容器”)。

异常

(无)

示例

Main.cpp
#include <unordered_map>
#include <iostream>
#include <utility>

int main()
{
std::unordered_map<int, int> numbers;
std::cout << std::boolalpha;
std::cout << "Initially, numbers.empty(): " << numbers.empty() << '\n';

numbers.emplace(42, 13);
numbers.insert(std::make_pair(13317, 123));
std::cout << "After adding elements, numbers.empty(): " << numbers.empty() << '\n';
}
输出
Initially, numbers.empty(): true
After adding elements, numbers.empty(): false
本文来源于 此 CppReference 页面。为改进或编辑偏好可能对其进行了修改。点击“编辑此页面”查看对本文档的所有更改。
悬停查看原始许可证。