std::experimental::ranges::input_iterator_tag, std::experimental::ranges::output_iterator_tag, std::experimental::ranges::forward_iterator_tag, std::experimental::ranges::bidirectional_iterator_tag, std::experimental::ranges::random_access_iterator_tag
来自cppreference.com
< cpp | experimental | ranges
struct input_iterator_tag { }; |
||
struct output_iterator_tag { }; |
||
struct forward_iterator_tag : public input_iterator_tag { }; |
||
struct bidirectional_iterator_tag : public forward_iterator_tag { }; |
||
struct random_access_iterator_tag : public bidirectional_iterator_tag { }; |
||
定义迭代器的类别。每个标签是空类型,且对应五个迭代器类别之一:
-
input_iterator_tag
对应InputIterator
。 -
forward_iterator_tag
对应ForwardIterator
。 -
bidirectional_iterator_tag
对应BidirectionalIterator
。 -
random_access_iterator_tag
对应RandomAccessIterator
。 -
output_iterator_tag
对应OutputIterator
;它不被使用,仅因后兼容性提供。
迭代器类别标签携带信息,能以之为该类别所隐含的特定要求集选择最有效的算法。然而更好的是基于概念的重载。
对每个 InputIterator
类型 I
,必须定义 ranges::iterator_category_t<I> 为描述该迭代器行为的最特定的类别标签的别名。
示例
本节未完成 原因:暂无示例 |
参阅
用于指示迭代器类别的空类类型 (类) | |
汇集迭代器的关联类型的兼容性特性类 (别名模板) |