едаваемый аргумент берется из

Автор admin Вторник, 26 мая 2009 11:32

едаваемый аргумент берется из другого контейнера. Для решения этой задачи используется вторая перегруженная форма алгоритма transform(): //: C06:MemFun2.cpp // Вызов функций класса по ссылке на объект #i nclude #i ncl ude functional > #include #i nclude #i nclude using namespace std: class Angle { int degrees: public: Angle(int deg) : degrees(deg) {} int muKint times) { return degrees *= times: } }: int mainO { vector va: fordnt i = 0: i < 50: i += 10) va.push_back(Angle(i)); int x[] - { 1. 2. 3. 4. 5 }: transform(va.begin(). va.endO. x, ostream_iterator(cout, ” “). mem_fun_ref(&Angle::mul)): cout « endl: // Результат: 0 20 60 120 200 } III:- Так как в контейнере хранятся объекты, с указателем на функцию класса должен использоваться адаптер mem_fun_ref(). Данная версия transform() получает начальную и конечную точки первого интервала (с объектами); начальную точку второго интервала (с аргументами функции), итератор приемника, которым в данном случае является стандартный выходной поток, и объект функции, вызывае- 278 Глава б • Обобщенные алгоритмы м


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