= и !=. Следовательно, перемещ

Автор admin Пятница, 5 июня 2009 11:32

= и !=. Следовательно, перемещение итератора it вперед до последнего элемента производится примерно так: while(it != pastEnd) { // Какие-то операции ++it: } Здесь pastEnd — конечный итератор, возвращенный функцией end() класса контейнера. Выборка элемента, на который в данный момент ссылается итератор, производится оператором разыменования *. Существуют две формы вызова функции объекта, хранящегося в контейнере: (*it).f() it->f(); Здесь it — итератор, используемый для перебора элементов, a f() — функция класса объекта, хранящегося в контейнере. Руководствуясь этой информацией, можно создать шаблон, работающий с контейнером любого типа. В следующей программе шаблон функции apply() вызывает для каждого элемента в контейнере функцию класса, указатель на которую передается в аргументе: //: С07:Арр1у.срр // Простой перебор элементов #include #i nclude #include using namespace std; tempiate void apply(Cont& c. PtrMemFun f) { typename Cont: iterator it = c.beginO: whiledt != c.endO) { ((*it).*f)(); // Альтернативная форма it++: } } class Z { int i; pu


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