struct random_access_iterator_tag : public bidirectional_iterator_tag { };
The type is the same as iterator<It>::iterator_category when It describes an object that can serve as a random-access iterator.
iterator<It>::
iterator_category
It