![]() |
Bidirectional | ![]() |
![]() |
|||
![]() |
Bidirectional iterators are iterators especially designed for sequential access in both directions - towards the end and towards the beginning.
They have the following characteristics:
| characteristic | valid expressions |
|---|---|
| Can be default-constructed | [=X a; X()=] |
| Can be copied and copy-constructed | [=X b(a); b = a;=] |
| Accepts equality/inequality comparisons. Equal iterators imply the same element is pointed | [=a == b a != b=] |
| Can be dereferenced (when not null) | [=*a a->m=] |
| Can be incremented (when not null) | [=++a a++ *a++=] |
| Can be decremented (when not null) | [=--a a-- *a--=] |
Where X is an iterator type, and a and b are objects of this iterator type.
These characteristics are the same of forward iterators, except that bidirectional iterators also support the decrement operator.
See also
| InputIterator | Input iterator category |
| OutputIterator | Output iterator category |
| ForwardIterator | Forward iterator category |
| RandomAccessIterator | Random-access iterator category |
| iterator | Iterator definitions (header) |

