Содержание
- 2. Розширення STL функціями користувача Передача функції через аргумент – стандартний механізм розширення функціональності бібліотеки Надійність механізму
- 3. Предикати Окрема категорія функцій, які передають у алгоритми для перевірки аргумента повертає bool результат залежить лише
- 4. Об'єкти-функції Об'єкти-функції – абстрактна категорія С++: все, що веде себе як функція, є функцією Крім виклику
- 5. Переваги об'єктів-функцій Можливості типу не обмежуються наявністю operator()(...), це може бути повноцінний тип С++ з додатковими
- 6. Accumulate (сума елементів послідовності) template T accumulate (In first, In last, T init) { while (first!=last)
- 7. Accumulate (сума елементів послідовності) void f(vector & vd, int* p, int n) { double sum =
- 8. Accumulate (узагальнення: обробка елементів послідовності) Цим алгоритмом можна не тільки сумувати елементи послідовності, а здійснювати над
- 9. Accumulate // перемноження елементів послідовності: #include void f(list & ld) { double product = accumulate(ld.begin(), ld.end(),
- 10. Accumulate (дані є частиною об’єкта) struct Tovar { int units; double unit_price; // … }; Для
- 11. class NewPrice { double zleva; public: NewPrice(double v):zleva(v){}; double operator()(double v,const Tovar& r){ return v +
- 12. Використання предикатів //предикат – функція // переміщення в b елементів не більших за 15 bool gt15(int
- 13. // предикат – функціональний об”єкт // переміщення в b елементів не більших за val class gt_n
- 14. стандартні об'єкти-функції Класифікація функціональних об”єктів бібліотеки STL здійснюється: за кількістю аргументів їх оператора operator( ) за
- 15. Шаблони базових типів стандартних об'єктів-функцій template struct unary_function {// base class for unary functions typedef _Arg
- 16. Всі визначені в бібліотеці функціональні об’єкти є шаблонними типами і представляють всі вбудовані знаки арифметичних операцій,
- 17. Стандартні об'єкти-функції
- 18. negate template struct negate : public unary_function {// functor for unary operator- _Ty operator()(const _Ty& _Left)const
- 19. plus template struct plus :public binary_function {// functor for operator+ _Ty operator()(const _Ty& _Left, const _Ty&
- 20. logical_or template struct logical_or :public binary_function {// functor for operator|| bool operator()(const _Ty& _Left, const _Ty&
- 21. Використання стандартних об”єктів-функцій // копіює елементи послідовності [first, last) у result, попередньо застосувавши до кожного елемента
- 22. Vector sklad1, sklad2; // зaповнення товаром sklad1, sklad2; transform(sklad1.begin(), sklad1.end(), sklad2.begin(), sklad1, minus ()); // для
- 23. Адаптери об'єктів-функцій Як використати бінарний функціональний об”єкт divides для ділення вектора на число? Як використати предикат
- 24. Адаптери стандартних об'єктів-функції
- 25. Адаптери binder1st і binder2nd Класи-адптери binder1st і binder2nd, конвертують адаптовані бінарні функції в адаптовані унарні функції,
- 26. class binder2nd template // functor adapter _Func(left, stored) class binder2nd : public unary_function typename _Fn2::result_type>{ public:
- 27. class binder2nd-2 template class binder2nd : public unary_function .... binder2nd(const _Fn2& _Func, const typename _Fn2::second_argument_type& _Right)
- 28. bind2nd() template inline binder2nd bind2nd(const Fn2& func, const T& right) {// return a binder2nd functor adapter
- 29. class binder1st template class binder1st: public unary_function { // functor adapter _Func(stored, right) public: typedef unary_function
- 30. class binder1st-2 template class binder1st : public unary_function . . . binder1st(const _Fn2& _Func, const typename
- 31. Використання адаптерів vector v1(4,4); ostream_iterator out(cout," "); transform(v1.begin(), v1.end(), out, bind2nd(divides (), 2)); // 2 2
- 32. Крім бібліотечних функціональних об”єктів можна конвертувати з допомогою алаптерів й функціональні об’єкти, створені користувачем. Для цього
- 33. class unary_negate //Шаблонний клас забезпечує функцію, яка заперечує значення, яке повертає унарна функція template class unary_negate
- 34. not1() template inline unary_negate not1(const Fn1& func) { // return a unary_negate functor adapter return std::unary_negate
- 35. class binary_negate template class binary_negate: public binary_function typename Fn2::second_argument_type, bool> { public: explicit binary_negate(const Fn2& func):
- 36. not2() template inline binary_negate not2(const Fn2& func) { return std::binary_negate (func); }
- 37. class pointer_to_unary_function //адаптер отримує вказівник на функцію і перетворює її (повертає) у функціональний об’єкт. Працює лише
- 38. ptr_fun() template inline pointer_to_unary_function Result (__cdecl *)(Arg)> ptr_fun( Result(__cdecl * left)(Arg) ){ // return pointer_to_unary_function functor
- 39. ptr_fun()-2 template class Result> inline pointer_to_binary_function ptr_fun ( Result(__cdecl * left)(Arg1, Arg2) ){ // return pointer_to_binary_function
- 40. int d[ ] = { 123, 94, 10, 314, 315 }; bool isEven(int x) { return
- 41. double d[] = { 01.23, 91.370, 56.661,023.230, 19.959, 1.0, 3.14159 }; int main() { vector vd;
- 42. Адаптери mem_fun()та mem_fun_ref_t Адаптер mem_fun( ) утворює функціональний об”єкт, який викликається, використовуючи вказівник на об”єкт, для
- 43. class mem_fun_t template class mem_fun_t : public unary_function { // functor adapter (*p->*pfunc)(), non-const public: explicit
- 44. mem_fun() template inline mem_fun_t mem_fun(Result (T::* pm)()) { // return a mem_fun_t functor adapter return mem_fun_t
- 45. class Shape { public: virtual void draw() = 0; virtual ~Shape() {} }; class Circle :
- 46. class mem_fun_ref_t template class mem_fun_ref_t : public unary_function { // functor adapter (*left.*pfunc)(), non-const *pfunc public:
- 47. mem_fun_ref() template inline mem_fun_ref_t mem_fun_ref(Result (T::* pm)()) { // return a mem_fun_ref_t functor adapter return mem_fun_ref_t
- 48. class Angle { int degrees; public: Angle(int deg) : degrees(deg) {} int mul(int times) { return
- 49. mem_fun1_t template class mem_fun1_t : public binary_function { // functor adapter (*p->*pfunc)(val), non-const *pfunc public: explicit
- 51. Скачать презентацию






































![int d[ ] = { 123, 94, 10, 314, 315 }; bool](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/376961/slide-39.jpg)
![double d[] = { 01.23, 91.370, 56.661,023.230, 19.959, 1.0, 3.14159 }; int](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/376961/slide-40.jpg)








Основы цветоведения
Культурная практика по Древней Руси
Развитие речи
Презентация на тему Культура речи Синтаксические нормы
Ресурсы повышения эффективности индивидуальной профилактической деятельности
Государство
Поверхности. Начертательная геометрия
Особенности современного проектирования
Дети, как известно, наша боль, наша радость
Электронные платежные системы России: игроки, состояние и проблемы
Faisons connaissence. Leçon 9
"Вопорсы дядюшки Светофора"
Конструкция There is/there are-There was/there were
ИРЛАНДИЯ
Сервировка стола к завтраку
Главная улица Москвы Если вы пройдете через Александровский сад и повернете налево,
Как научить ребёнка сознательно относиться к собственному здоровью
Итоги повышения квалификации специалистов учреждений МСЭ по МКФ в рамках государственной программы «Доступная среда» на 2011-2015 го
Понятие и содержание законности
Условия назначения страховой пенсии по старости
Юрист
Пассивные операции банков, их характеристика
Презентация на тему Треугольники (5 класс)
Техника мраморирования в современном дизайне
Речевые секреты
ВОЗРОЖДЕНИЕ (Ренессанс) Торговая площадь (Гроте-маркт) и ратуша —
Батьківський комітет. Благодійний внесок
Сетевая лаборатория проектного предпринимательского образования