Let's say :
std::sort(beg1, beg2, pred);
This algorithm takes a range of iterators for the container and a predicate. It takes an LegacyRandomAccessIterator. I do understand the the 5 iterator categories are categorised by their operators. Albeit I'm having a hard time assuming which iterator the algorithm uses.
There is no need to assume anything, it is all documented. According to cppreference the iterators are LegacyRandomAccessIterator
.
Type requirements
-RandomIt must meet the requirements of ValueSwappable and LegacyRandomAccessIterator.
-The type of dereferenced RandomIt must meet the requirements of MoveAssignable and MoveConstructible.
The page for LegacyRandomAccessIterator describes what such an iterator looks like.