Вам понадобится стандартизированный способ увеличения итератора.В C ++ это просто перегруженный operator++()
.Вашему контейнеру нужна связанная функция, которая возвращает указатель на следующий элемент.Эта инкрементная функция должна передаваться как указатель на любую обобщенную подпрограмму, которая может принять итератор в вашей библиотеке.
Например, если я хочу написать функцию, которая возвращает max элемент из контейнера, мне нужна не только функция сравнения (эквивалент operator<()
), мне нужна функция, увеличивающая итератор (эквивалент operator++()
).
Таким образом, гарантируя, что я могу принятьуказатель на вашу функцию приращения является ключевым требованием.