在线文档教程
C++
迭代器 | Iterator

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。

http://en.cppreference.com/w/cpp/iterator/空