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 { };

定义迭代器的类别。每个标签是空类型,且对应五个迭代器类别之一:

迭代器类别标签携带信息,能以之为该类别所隐含的特定要求集选择最有效的算法。然而更好的是基于概念的重载。

对每个 InputIterator 类型 I ,必须定义 ranges::iterator_category_t<I> 为描述该迭代器行为的最特定的类别标签的别名。

示例

参阅

用于指示迭代器类别的空类类型
(类)
汇集迭代器的关联类型的兼容性特性类
(别名模板)