Хотя поначалу это кажется довольно очевидным, на самом деле это более глубокий вопрос, чем вы можете себе представить. Вместе с Полом МакДжонсом Александр Степанов (дизайнер оригинала, для тех, кто не знает об этом) недавно выпустил книгу под названием Элементы программирования (она же EOP). Вся шестая глава этой книги посвящена конкретно итераторам, и большая часть остальной части книги также тесно связана с итераторами. Любой, кто действительно хочет знать итераторы во всех подробностях, может подумать о прочтении этой книги.
Предупреждение: EOP не для слабонервных. Это относительно короткий (~ 260 страниц), но довольно плотный. Судя по опыту, раннее начало немного сбивает с толку. Моя первая реакция на первую главу была более или менее «ну, это так очевидно, что вряд ли стоит читать. В конце концов, я начал программировать до прошлой недели!»
К счастью, я посмотрел на упражнения и попытался выполнить пару - и хотя я считал предметы очевидными, упражнения требуют строгих доказательств. Это похоже на просьбу доказать (в математическом смысле), что вода мокрая. В конце концов вам просто нужно прочитать эту главу пару раз, чтобы забыть о своем предвзятом представлении о том, что вы уже знаете ответы, чтобы вы могли взглянуть на реальный вопрос - что на самом деле означает «мокрая»; Каковы основные характеристики "сырости"?