jjzjj

ForwardIterator1

全部标签

c++ - 使用即时计算的临时值为 ForwardIterator 实现成员访问运算符->

我正在为一个适配器范围实现一个迭代器,它懒惰地评估原始范围上的某些东西。这意味着:取消引用迭代器应该取消引用底层迭代器并对结果应用一些操作,然后返回该操作的结果。Toperator*()const{returnsomeOperation(*original_iterator);}如何实现类似于此operator*的operator->?在查看其他迭代器的实现时,它们通常返回一个T*。但是我不能返回一个指针,因为“指向对象”是一个临时的、即时计算的。在这种情况下,通常的指导是什么?我可以简单地返回一个T吗?虽然我个人不需要这个运算符(我也可以使用(*i​​).m而不是i->m并且标准算法

c++ - std::search 和 std::find_first_of 之间的区别

我试图掌握std::search和std::find_first_of之间的区别它们具有相同的原型(prototype):templateForwardIterator1find_first_of(ForwardIterator1first1,ForwardIterator1last1,ForwardIterator2first2,ForwardIterator2last2);templateForwardIterator1find_first_of(ForwardIterator1first1,ForwardIterator1last1,ForwardIterator2first2,

c++ - 为什么 std::max_element 需要 ForwardIterator?

C++标准库的max_element算法要求将迭代器作为输入传递给模型ForwardIterator。我的理解是ForwardIterator通过指定您可以使用ForwardIterator在同一范围内多次迭代来优化InputIterator。因此,多遍算法需要ForwardIterators。但是,max_element不是多遍算法-在一个范围内迭代一次以确定其最大元素就足够了。那么为什么max_element需要ForwardIterator的额外能力呢? 最佳答案 std::max_element返回一个指向最大元素的迭代器。