std::empty
STD:空
Defined in header | | |
---|---|---|
template <class C> constexpr auto empty(const C& c) -> decltype(c.empty() | (1) | (since C++17) |
template <class T, std::size_t N> constexpr bool empty(const T (&array)N) noexcept; | (2) | (since C++17) |
template <class E> constexpr bool empty(std::initializer_list<E> il) noexcept; | (3) | (since C++17) |
返回给定容器是否为空。
1%29c.empty()
2%29false
3%29il.size() == 0
参数
c | - | a container with an empty method |
---|---|---|
array | - | an array of arbitrary type |
il | - | an initializer list |
返回值
true
如果容器%27T有任何元素。
例外
2,3%29
noexcept
规格:
noexcept
注记
除了被纳入<iterator>,,,std::empty如果包括下列任何一个标头,则保证可用:<array>,,,<deque>,,,<forward_list>,,,<list>,,,<map>,,,<regex>,,,<set>,,,<string>,,,<unordered_map>,,,<unordered_set>,和<vector>...
可能的实施
第一版
*。
模板<class C>自动清空%28 const C&c%29->解密类型%28c空%28%29%29{返回c.空%28%29;}
第二版
模板<类T,STD::size[医]TN>COMPUL空%28%T%28和数组%29n%29 no{返回false;})
第三版
模板<class E>空%28std::初始化器[医]列单<E>除{返回il.size%28%29==0;}
例
二次
#include <iostream>
#include <vector>
template <class T>
void print(const T& container)
{
if ( !std::empty(container) )
{
std::cout << "Elements:\n";
for ( const auto& element : container )
std::cout << element << '\n';
}
else
{
std::cout << "Empty\n";
}
}
int main()
{
std::vector<int> c = { 1, 2, 3 };
print(c
c.clear(
print(c
int array[] = { 4, 5, 6 };
print(array
auto il = { 7, 8, 9 };
print(il
}
二次
产出:
二次
Elements:
1
2
3
Empty
Elements:
4
5
6
Elements:
7
8
9
二次
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。