如何为C++20的input/output/forward迭代器概念撰写单行粗略总结?
C++20迭代器概念可视化补充方案
针对你缺失的三个迭代器概念,给出符合现有风格的单行概述,并更新可视化代码如下:
三个迭代器的单行含义
- input_iterator:可读、单遍遍历、可与哨位比较相等性
- output_iterator:可写、单遍遍历、专注输出数据
- forward_iterator:可读可写(按需支持)、多遍遍历、自身可作为哨位
更新后的可视化代码
digraph iter_concepts { rankdir = BT; node[shape=record]; indirectly_readable [label="{indirectly_readable|... = *it}"]; indirectly_writable [label="{indirectly_writable|*it = ...}"]; weakly_incrementable [label="{weakly_incrementable|++it, one pass}"]; incrementable [label="{incrementable|++it, multi pass}"]; input_or_output_iterator [label="{input_or_output_iterator|*it}"]; sentinel_for [label="{sentinel_for|for(x : ...)}"]; sized_sentinel_for [label="{sized_sentinel_for|for(... i<sz ...)}"]; input_iterator [label="{input_iterator|可读、单遍、可与哨位比较}"]; output_iterator [label="{output_iterator|可写、单遍、专注输出}"]; forward_iterator [label="{forward_iterator|多遍、自身为哨位、可读可写}"]; bidirectional_iterator [label="{bidirectional_iterator| --it}"]; random_access_iterator [label="{random_access_iterator| it+=n, it-=n, it[n]}"]; contiguous_iterator [label="{contiguous_iterator| it ≍ pointer}"]; incrementable -> weakly_incrementable; input_or_output_iterator -> weakly_incrementable; sentinel_for -> input_or_output_iterator; sized_sentinel_for -> sentinel_for; input_iterator -> input_or_output_iterator; input_iterator -> indirectly_readable; output_iterator -> input_or_output_iterator; output_iterator -> indirectly_writable; forward_iterator -> input_iterator; forward_iterator -> sentinel_for; forward_iterator -> incrementable; bidirectional_iterator -> forward_iterator; random_access_iterator -> bidirectional_iterator; contiguous_iterator -> random_access_iterator; }
当前生成效果

内容的提问来源于stack exchange,提问作者towi
相关产品推荐
相关产品推荐

