Содержание
- 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)








Введение в специальность - машиностроение. Практические занятия
An act of desperation
Презентация упаковки
Яна
29 апреля день танца
Презентация на тему Бесполое и половое размножение организмов
etica1 2012
Урок -сказка
Кризи, кризові ситуації, можливості виходу з кризи
Course template
Гений да Винчи
Право собственности
Методический семинар
Тенденции развития российского микрофинансового сектора
Презентация на тему Иван Саввич Никитин
ответы Охрана труда 2022
Отряд Грызуны. Суслики
Спорт против наркотиков
М еждународная Б иржа К онтактов&И нвестиций
Общеобразовательная общеразвивающая программа дополнительного образования художественного направления Волшебная мастерская
СССР в годы Великой Отечественной войны
Родословная Деда Мороза
Психологическая подготовка к ЕГЭ: чем психолог может помочь выпускнику, педагогу, родителю?
Философия Досократики
цифры от 0 до 9
Складывание салфеток
Бартоломео Франческо Растрелли
Вторичное использование газет и журналов