bidirectional_iterator_tag class — Tag for a bidirectional iterator
struct bidirectional_iterator_tag :
public forward_iterator_tag {};
Use the bidirectional_iterator_tag
class as the
iterator category when declaring a new bidirectional iterator class.
When writing a generic algorithm or similar function, you can use
the iterator's category to write specialized implementations for
different kinds of iterators. See Example 13-19 (under the
distance
function
template).