Home > Blockchain >  How should I assume which iterator category an algorithm uses?
How should I assume which iterator category an algorithm uses?

Time:07-21

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.

CodePudding user response:

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.

  • Related