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
< 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> 为描述该迭代器行为的最特定的类别标签的别名。
示例
| 本节未完成 原因:暂无示例 |
参阅
| 用于指示迭代器类别的空类类型 (类) |
|
| 汇集迭代器的关联类型的兼容性特征类 (别名模板) |