формальный параметр-указатель
Типичными итераторами являются:
-итератор обхода (foreach), выполняющий для каждой переменной в структуре данных указанную функцию;
-итератор поиска (firstthat), выполняющий для каждой переменной в структуре данных функцию проверки и возвращающий указатель на первую переменную, которая удовлетворяет условию, проверяемому в функции;
-итераторы сортировки, двоичного поиска, включения и исключения элементов в упорядоченную структуру данных.
Ниже приводятся примеры итераторов для массива указателей и списка. Чтобы список мог содержать переменные произвольного типа, они представлены отдельными переменными, указатели на которые типа void* занесены в элементы списка.
//------------------------------------------------------bk56-02.cpp
//----- Элемент списка ------------------------------------
struct list
{
list *next; // Указатель на следующий
void *pdata; // Указатель на данные
} *PH; // Пример заголовка списка
//----- Итератор: для каждого элемента списка ------------
void ForEach(list *pv, void (*pf)(void*) )
{
for (; pv !=NULL; pv = pv->next)
(*pf)(pv->pdata);
}
//----- Итератор: поиск первого в списке по условию ------