🗊 Презентация Функциональные объекты. Работа с последовательностями. (Лекцция 4)

Нажмите для полного просмотра!
Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №1 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №2 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №3 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №4 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №5 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №6 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №7 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №8 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №9 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №10 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №11 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №12 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №13 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №14 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №15 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №16 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №17 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №18 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №19 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №20 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №21 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №22 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №23 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №24 Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №25

Содержание

Вы можете ознакомиться и скачать презентацию на тему Функциональные объекты. Работа с последовательностями. (Лекцция 4). Доклад-сообщение содержит 25 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Лекция 4 Функциональные объекты. Работа с последовательностями
Описание слайда:
Лекция 4 Функциональные объекты. Работа с последовательностями

Слайд 2


Возвращаясь к алгоритму sort В предыдущей версии алгоритма sort предполагалось, что использовался оператор сравнения “меньше чем” y; } Функция...
Описание слайда:
Возвращаясь к алгоритму sort В предыдущей версии алгоритма sort предполагалось, что использовался оператор сравнения “меньше чем” y; } Функция comparefun(a[i], a[j]) равняется true тогда и только тогда, когда после сортировки a[i] должно предшествовать a[j]. Функции, возвращающие значение типа bool, называются предикатами.

Слайд 3


Возвращаясь к алгоритму sort int dsort1() { const int N = 8; int a[N]={1234,5432,8943,3346,9831,7842,8863,9820}; cout
Описание слайда:
Возвращаясь к алгоритму sort int dsort1() { const int N = 8; int a[N]={1234,5432,8943,3346,9831,7842,8863,9820}; cout

Слайд 4


Функциональные объекты Функциональным объектом называется класс, где определен оператор вызова, который записывается как operator(). От класса не...
Описание слайда:
Функциональные объекты Функциональным объектом называется класс, где определен оператор вызова, который записывается как operator(). От класса не требуется наличия каких-либо других членов. #include class compare { public: bool operator() (int x, int y) const { return x > y; } }; int funobj() { compare v; cout

Слайд 5


Замечания В классе compare определен оператор вызова функции, operator(), с двумя параметрами типа int,=> можно использовать выражение v(2,15), где v...
Описание слайда:
Замечания В классе compare определен оператор вызова функции, operator(), с двумя параметрами типа int,=> можно использовать выражение v(2,15), где v – переменная этого класса. Это сокращенная форма записи v.operator()(2,15), которая приводит к вызову функции-члена operator() класса compare, возвращающей значение 0, поскольку 2

Слайд 6


Использование функционального объекта // dsort2 .срр: Сортировка в нисходящем порядке class compare { public: bool operator()(int x, int y)const {...
Описание слайда:
Использование функционального объекта // dsort2 .срр: Сортировка в нисходящем порядке class compare { public: bool operator()(int x, int y)const { return x > y; } }; int dsort2() { const int N = 8; int a[N] ={1234,5432,8943,3346,9831,7842,8863,9820}; cout

Слайд 7


Работа с последовательностями. Алгоритм accumulate // Вычисление суммы элементов последовательности #include #include // для вычислений using...
Описание слайда:
Работа с последовательностями. Алгоритм accumulate // Вычисление суммы элементов последовательности #include #include // для вычислений using namespace std; int accum1_massiv() { const int N = 8; int a[N] = {4, 12, 3, 6, 10, 7, 8, 5}, sum = 0; sum = accumulate(a, a+N, sum); cout

Слайд 8


Алгоритм accumulate // Вычисление произведения Шаблон multiplies() аналогичен шаблону greater(). Мы используем его для вычисления произведения вместо...
Описание слайда:
Алгоритм accumulate // Вычисление произведения Шаблон multiplies() аналогичен шаблону greater(). Мы используем его для вычисления произведения вместо суммы: #include #include #include #include // Функциональные объекты, // определенные в STL using namespace std; int accum2_massiv() { const int N = 4; int a[N] = {2, 10, 5, 3}, prod = 1; prod = accumulate(a, a+N, prod, multiplies()); cout

Слайд 9


Алгоритм accumulate (с функциональным объектом) Для заданного массива а, содержащего четыре элемента, вычисляется следующее значение: 1 *а[0] + 2 *...
Описание слайда:
Алгоритм accumulate (с функциональным объектом) Для заданного массива а, содержащего четыре элемента, вычисляется следующее значение: 1 *а[0] + 2 * а[1] + 4 * а[2] + 8 * а[3] Кроме функции operator() наш функциональный объект содержит член типа int, который хранит последовательные степени 1, 2, 4 и 8, а также конструктор для инициализации этого члена класса: #include #include using namespace std; class fun { public: fun(){i = 1;} int operator()(int x, int y) { int u = x + i * y; i *= 2; return u; } private: int i; };

Слайд 10


Алгоритм accumulate (с функциональным объектом) int accum3() { const int N = 4; int a[N] = {7, 6, 9, 2}, prod = 0; prod = accumulate(a, a+N, prod,...
Описание слайда:
Алгоритм accumulate (с функциональным объектом) int accum3() { const int N = 4; int a[N] = {7, 6, 9, 2}, prod = 0; prod = accumulate(a, a+N, prod, fun()); cout

Слайд 11


Алгоритм count count подсчитывает, какое количество элементов последовательности равно заданному значению. // count_e.cpp: Подсчет количества букв...
Описание слайда:
Алгоритм count count подсчитывает, какое количество элементов последовательности равно заданному значению. // count_e.cpp: Подсчет количества букв 'е'. #include #include #include using namespace std; int count_e() { char *р = "This demonstrates the Standard Template Library"; int n = count (p, p + strlen(p), 'e'); cout

Слайд 12


Алгоритм count // Сосчитать, сколько раз гласные а, е, i, о, u //встречаются в заданной строке (первая версия). #include #include #include using...
Описание слайда:
Алгоритм count // Сосчитать, сколько раз гласные а, е, i, о, u //встречаются в заданной строке (первая версия). #include #include #include using namespace std; int countvwl() { char *p = "This demonstrates the Standard Template Library", *q = p + strlen(p) ; int n = count(p, q, 'a') + count(p, q, 'e') + count(p, q, 'i') + count(p, q, 'o') + count(p, q, 'u'); cout

Слайд 13


Алгоритм count_if // Сосчитать, сколько раз гласные а, е, i, о, u //встречаются в заданной строке (улучшенная версия). #include #include #include...
Описание слайда:
Алгоритм count_if // Сосчитать, сколько раз гласные а, е, i, о, u //встречаются в заданной строке (улучшенная версия). #include #include #include using namespace std; bool found(char ch) { return ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u'; } int countvw2() { char *p = "This demonstrates the Standard Template Library"; int n = count_if(p, p + strlen(p), found); cout

Слайд 14


Функциональные объекты, определенные в STL Функции, например found, возвращающие true или false в зависимости от соблюдения некоторого условия,...
Описание слайда:
Функциональные объекты, определенные в STL Функции, например found, возвращающие true или false в зависимости от соблюдения некоторого условия, называются предикатами. Ранее уже встречалось выражение greater, которое также является предикатом, но определенным в STL в виде шаблона. Мы использовали это выражение в вызове: sort (a, a+N, greater ()); Другой предикат multiplies() встречался при подсчёте произведения: int prod = accumulate (a, a+N, 1, multiplies());

Слайд 15


Полный список шаблонов Шаблоны (определенные в заголовке functional), соответствуют стандартным бинарным операциям: plus minus multiplies divides...
Описание слайда:
Полный список шаблонов Шаблоны (определенные в заголовке functional), соответствуют стандартным бинарным операциям: plus minus multiplies divides modulus equal_to not_equal_to greater less greater_equal less_equal logical_and logical_or Существуют шаблоны, соответствующие унарным операторам - (-х) и (!): negate logical_not Все эти шаблоны (с парой скобок ()) являются функциональными объекты, определенными в библиотеке STL, например, plus() .

Слайд 16


Более сложный пример Рассмотрим класс Man, в котором (кроме прочего) содержится два поля: - string name; - int age; Создадим вектор men, содержащий...
Описание слайда:
Более сложный пример Рассмотрим класс Man, в котором (кроме прочего) содержится два поля: - string name; - int age; Создадим вектор men, содержащий объекты класса Man. Будем производить сортировку по разным критериям. В классе Man определён предикат – операция operator

Слайд 17


Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №17
Описание слайда:

Слайд 18


Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №18
Описание слайда:

Слайд 19


Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №19
Описание слайда:

Слайд 20


Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №20
Описание слайда:

Слайд 21


Функциональные объекты. Работа с последовательностями. (Лекцция 4), слайд №21
Описание слайда:

Слайд 22


Алгоритм find_if Алгоритмы семейства find осуществляют поиск в последовательности заданного значения. Алгоритмы find_if выполняет поиск значения,...
Описание слайда:
Алгоритм find_if Алгоритмы семейства find осуществляют поиск в последовательности заданного значения. Алгоритмы find_if выполняет поиск значения, заданного с помощью предиката. В качестве предиката используем функциональный объект. #include #include #include using namespace std; class In_10_50 { public: bool operator() (int x) {return x > 10 && x < 50;} };

Слайд 23


Алгоритм find_if int main_find() { int a[10] = {43,11,26,79,11,55,31,59,8,0}; vector v(a,a+10); vector::iterator i; for (i=v.begin(); i != v.end();...
Описание слайда:
Алгоритм find_if int main_find() { int a[10] = {43,11,26,79,11,55,31,59,8,0}; vector v(a,a+10); vector::iterator i; for (i=v.begin(); i != v.end(); ++i) cout

Слайд 24


Алгоритм find_if Модифицируем программу, чтобы найти все элементы, удовлетворяющие условию. int main_find() { int a[] =...
Описание слайда:
Алгоритм find_if Модифицируем программу, чтобы найти все элементы, удовлетворяющие условию. int main_find() { int a[] = {11,26,79,11,55,31,59,18,20,143}; int m; vector v(a,a+10); vector::iterator i,k; for (i=v.begin(); i != v.end(); ++i) cout

Слайд 25


Результат работы программы:
Описание слайда:
Результат работы программы:



Похожие презентации
Mypresentation.ru
Загрузить презентацию