C ++算法的迭代器类别要求

时间:2014-08-14 14:47:43

标签: c++ iterator

有没有人知道一个源代码,它概述了C ++标准库中各种算法对iterator_category提出的要求?我见过的文档只给出了每个特定算法所需的iterator_category,而不是所有算法的概述。

具体来说,我正在寻找bidirectional_iterator无法forward_iterator不需要{{1}}的情况。

2 个答案:

答案 0 :(得分:3)

在第25条中搜索“双向”给出:

  • std::copy_backward
  • std::move_backward
  • std::reverse
  • std::reverse_copy
  • std::stable_partition
  • std::inplace_merge
  • std::next_permutation
  • std::prev_permutation

一般情况下,您可以参考标准§25.1[algorithms.general]中的<algorithm>概要。

答案 1 :(得分:0)

该标准规定了各种迭代器的要求,相关部分为§24.2[iterator.requirements]。

关于双向迭代器的具体问题,只要需要向后移动迭代器,它们就是必需的,因为它们支持前向迭代器支持的每个操作,除了:

--i
i--
*i--

As detailed here.