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