Boost C++ 库

……世界上最受推崇且设计最专业的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码规范

双向遍历概念 - Boost C++ 函数库

双向遍历概念

一个类或内置类型X模型了双向遍历的概念,如果除了X满足 Forward Traversal Iterator 的要求外,以下表达式有效且符合所述语义。

双向遍历迭代器要求(除了前向遍历迭代器)
表达式 返回类型 断言/语义/前置/后置条件
--r X& pre: 存在s使得r == ++s。posts是可解引用的。--(++r) == r. --r == --s蕴含r == s. &r == &--r.
r-- 可转换为const X&
{
  X tmp = r;
  --r;
  return tmp;
}
iterator_traversal<X>::type 可转换为bidirectional_traversal_tag