有没有人知道一个源代码,它概述了C ++标准库中各种算法对iterator_category
提出的要求?我见过的文档只给出了每个特定算法所需的iterator_category
,而不是所有算法的概述。
具体来说,我正在寻找bidirectional_iterator
无法forward_iterator
不需要{{1}}的情况。
答案 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--