bidirectional_iterator
using __STD::bidirectional_iterator;
iterator_category(const bidirectional_iterator<_Tp, _Distance>&)
inline _Tp* value_type(const bidirectional_iterator<_Tp, _Distance>&)
distance_type(const bidirectional_iterator<_Tp, _Distance>&)