Enum - это и вещь (список возможных значений), и действие (пошаговое выполнение каждого элемента в списке). Windows API использует оба термина, полагаясь на контекст, чтобы различать их.
Как правило, имена функций и интерфейсов с "Enum" в названии означают перечисление, например EnumWindows означает перечисление окон, а IEnumUnknown (интерфейс COM) означает перечисление неизвестных [объектов].
В Windows API нет единой методологии перечисления. EnumWindows реализует цикл внутренне и неоднократно вызывает вас обратно через функцию-обработчик, в то время как IEnumUnknown требует, чтобы вызывающая сторона написала цикл, используя функцию Next ().
Итак, в Windows перечислитель - это широкий класс решений проблемы обхода списка элементов.
Итераторы - это стандартная библиотека C ++ для перечислителя. Выбор «итератора» вместо «перечислителя», вероятно, был сделан намеренно, чтобы избежать путаницы с существующей концепцией языка перечислений.
В отличие от Windows, концепция итератора стандартной библиотеки C ++ очень хорошо определена: все итераторы работают как указатели; все итераторы требуют, чтобы вызывающая сторона написала цикл и т. д. В стандартной библиотеке C ++ есть несколько классов итераторов, которые позволяют получать доступ к элементам линейно, в обратном порядке или случайным образом.