, но и является хорошим пример

Автор admin Понедельник, 8 июня 2009 11:32

, но и является хорошим примером, на котором можно учиться разрабатывать собственные итераторы1. Класс Tokenlterator обладает двумя «степенями свободы». Во-первых, он позволяет выбрать тип итератора, поставляющего символьные входные данные. Во-вторых, вместо простого определения символов-ограничителей Tokenlterator использует предикат — объект функции, оператор () которого получает char и решает, принадлежит ли он текущей лексеме. Хотя в двух приводимых примерах принадлежность символов к лексемам определяется статическим критерием, вы можете легко написать собственный объект функции, изменяющий свое состояние в процессе чтения символов. Следующий заголовочный файл содержит два базовых предиката Isalpha и Delimiters, а также шаблон Tokenlterator: //: С07:Tokenlterator.h #ifndef TOKENITERATOR_H #define TOKENITERATOR_H #include #i nclude #i ncl ude functional> #i nclude #include struct Isalpha : std::unary_function { Этот пример также был предложен Натаном Майерсом (Nathan Myers). 372 Глава 7 • Обобщенные контейнеры bool operator^)(char с) { return std


Комментарии закрыты.