уктору наряду с предикатом дол
Автор admin Вторник, 9 июня 2009 11:32
уктору наряду с предикатом должны передаваться итераторы (начальный и конечный). Но как отмечалось выше, Tokenlterator — всего лишь оболочка; он не узнает о достижении конца входных данных, поэтому присутствие конечного итератора в первом конструкторе необходимо. Наличие второго конструктора (конструктора по умолчанию) объясняется тем, что в алгоритмах STL, а также в пользовательских алгоритмах вызов конструктора без аргументов означает конец перебора. Но вся информация, по которой определяется достижение итератором Tokenlterator конца входных данных, собрана в первом конструкторе. Таким образом, второй конструктор создает объект Tokenlterator, который просто занимает положенное место в алгоритмах. Вся основная функциональность класса сосредоточена в операторе ++. Он уничтожает текущее значение word вызовом string::resize(), а затем ищет первый символ, удовлетворяющий предикату (то есть начало новой лексемы), алгоритмом find_if(). Полученный итератор присваивается переменной first, в результате чего first перемещается в начало новой лексемы. Затем до тех пор, пока не будет достигнут конец входных данных
Комментарии закрыты.
Последние комментарии