ostream> using namespace std:
Автор admin Воскресенье, 24 мая 2009 11:32
ostream> using namespace std: // Предикат определяется пользователем bool gtl5(int x) { return 15 < x: } int mainO { int a[] = {10. 20. 30}: const size_t SIZE = sizeof a / sizeof a[0]; int b[SIZE]: int* endb = remove_copy_if(a. a+SIZE, b. gtl5): int* beginb = b: while (beginb != endb) cout « *beginb++ « endl; // Выводит только 10 } ///:- Шаблон функции remove_copy_if() получает стандартную пару указателей, определяющих границы интервала, за которыми следует предикат по выбору пользователя. Предикат передается в виде указателя на функцию1. Эта функция получает один аргумент, тип которого соответствует типу элементов интервала, и возвра- Или объекта, который может «вызываться» как функция. Об этом речь пойдет далее. Первый взгляд 259 щает bool. В нашем примере функция gtl5 возвращает true, если ее аргумент больше 15. Алгоритм remove_copy_if() применяет gtl5() к каждому элементу исходного интервала и игнорирует элементы, для которых предикат возвращает true, при записи в приемный (выходной) интервал. Следующая программа демонстрирует другую разновидность алгоритма сору: //: С06:CopyStrings2.срр // Замена
Комментарии закрыты.
Последние комментарии