抱歉..这是我的错误..我不是指随机迭代器...我应该问一下双向迭代器...所以你不认为只有双向迭代器可以覆盖输入的功能,输出,转发迭代器?那么有没有具体的理由来介绍(输入,输出,转发)迭代器的概念?谢谢。 -
答案 0 :(得分:6)
容器不是唯一有趣的序列。此外,std::list<...>
和关联容器没有有效的随机访问方法,尽管它们是容器。 std::forward_list<...>
可以向一个方向行走。当序列是源或排水时,它们通常只能遍历一次。哦,看!我实际上给出了所有五个类别的理由!
请注意,“STL迭代器”不是类,而是 concepts ,即满足相应迭代器概念所需的操作和相关类型的要求。基本思想是算法接口是根据最弱的概念指定的,从而产生有效的实现。当为算法提供更强的概念时,它们可能能够应用一些优化。这种方法可以生成灵活有效的算法,可以在各种不同的序列上运行。
答案 1 :(得分:1)
随机访问迭代器无法始终工作。一个简单的例子:如果您通过网络传输数据,则无法从头开始。原因有很多,但只需阅读页面即可。