C++ 概念: BidirectionalIterator

来自cppreference.com
< cpp‎ | concept
 
 
 

双向迭代器 (BidirectionalIterator) 是能双向移动(即自增与自减)的向前迭代器 (ForwardIterator) 。

[编辑] 要求

类型 It 满足双向迭代器 (BidirectionalIterator) ,若

且给定

  • ab ,类型 It 的迭代器
  • referencestd::iterator_traits<It>::reference 所指代的类型

则下列表达式必须合法并拥有其效应

表达式 返回 等价表达式 注意
--a It& 前提条件:
  • a 可自减(存在满足 a == ++bb

后置条件:

  • a 可解引用
  • --(++a) == a
  • --a == --ba == b
  • &a == &--a
a-- 可转换到 const It& It temp = a;

--a;

return temp;
*a-- reference

一个可变双向迭代器 (BidirectionalIterator) 是另外满足输出迭代器 (OutputIterator) 要求的双向迭代器 (BidirectionalIterator) 。

[编辑] 注意

起始迭代器不可自减。且若求值 --container.begin() 则行为未定义。

双向迭代器不必可解引用、可自减(尤其是尾迭代器不可解引用但可自减)。

[编辑] 参阅

指定向前迭代器 (ForwardIterator) 为双向迭代器,支持向后移动
(概念) [编辑]