std::array empty() 方法
- 自 C++20 起
- 直到 C++20
// Const version only
[[nodiscard]] constexpr bool empty() const noexcept;
// Const version only
constexpr bool empty() const noexcept;
检查容器是否没有元素,即 begin() == end()
。
参数
(无)
返回值
如果容器为空,则为 true
,否则为 false
。
复杂度
常数。
为什么是 [[nodiscard]]
?
[[nodiscard]]
属性是一种在函数被调用且其结果被丢弃时引发编译器警告的属性。
将 nodiscard 属性仅应用于 empty
方法的原因是,程序员很可能会将形容词 empty
(表示 - 此容器是否为空?)与动词 empty
(表示 - 请将此容器清空。)混淆。
示例
Main.cpp
#include <array>
#include <iostream>
int main()
{
std::array<char, 6> letters {'a', 'b', 'c', 'd', 'e', 'f'};
if (!letters.empty()) {
std::cout << "The last character is '" << letters.back() << "'.\n";
}
}
可能输出
numbers.empty(): false
no_numbers.empty(): true