Содержание
- 2. Универсальным алгоритмом будем называть алгоритм, не привязанный к определенному типу входных и выходных данных, т.е. одинаково
- 3. void bubble_sort(int data[], int n) { ... } void bubble_sort(float data[], int n) { ... }
- 4. Решение 1: псевдоним типа (typedef) typedef T int; T summa(T array[], int size) { T res
- 5. Универсальный алгоритм в С++ может быть реализован с помощью шаблона функции. Определение шаблона похоже на определение
- 6. Синтаксис определения Определение шаблона функции template тип имя_функции(список_аргументов) { операторы; }; В теле шаблона функции могут
- 7. template T summa(T array[], int size) { T res = 0; for (int i=0; i res
- 8. При вызове функции-шаблона, после ее имени указывают фактические параметры шаблона в угловых скобках, а затем фактические
- 9. Шаблоны можно параметризовать не только именами типов, но и объектами, поэтому аргумент size можно указать в
- 10. Параметрами шаблона могут быть − параметр-тип (имя типа – int, float, string и т.д.) − параметр-шаблон
- 11. Параметром-переменной в шаблоне не может быть: − void − пользовательский тип − вещественный тип (float, double)
- 12. Шаблон в языке С++ реализует принципы параметрического полиморфизма, то есть возможности применять один и тот же
- 13. Если к какому-либо конкретному типу аргументов шаблонный алгоритм неприменим, то можно определить обычную функцию, список типов
- 14. Иногда при вызове шаблона функции после имени можно не указывать фактические параметры в угловых скобках. В
- 15. При выведении типов могут применяться только преобразования точного отождествления, то есть: Преобразование типов T[] T* T
- 16. Пример преобразования типов template T max(T t1, T t2){...} int main() { max(1,2); // max (1,2);
- 17. Устранение неоднозначности max (’a’,1); max (2.5,4); Неоднозначности не возникают при использовании явного квалификатора типа шаблона
- 18. Универсальным контейнером будем называть программную структуру, которая может использоваться для хранения данных разных типов. Такие контейнеры
- 19. Синтаксис объявления Объявление шаблона класса template class имя_класса { поля и методы; }; В объявлении класса-шаблона
- 20. Создание объекта шаблонного класса называется инстанцированием шаблона. Синтаксис инстанцирования Создание объекта имя_класса объект;
- 21. Пример: пара чисел template class pair { private: T1 data1; T2 data2; public: pair(T1 d1, T2
- 22. pair c1(5, ’S’); pair c2(0.39, false); c1.print(); c2.print(); Примеры инстанцирования шаблона класса pair Для корректного функционирования
- 23. Пример 2: шаблон массива Задача: создать шаблон класса array, позволяющего хранить данные любого типа. Предусмотреть следующие
- 24. #include #include template class array { public: array(); ~array(); T& operator[](int k); private: T *data; };
- 25. template array ::array() { data = new T[n]; } template array ::~array() { delete []data; }
- 26. template T& array ::operator[](int k) { if( k =n ) throw std::out_of_range("Out!"); return data[k]; } template
- 28. Скачать презентацию

![void bubble_sort(int data[], int n) { ... } void bubble_sort(float data[], int](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/989063/slide-2.jpg)
![Решение 1: псевдоним типа (typedef) typedef T int; T summa(T array[], int](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/989063/slide-3.jpg)


![template T summa(T array[], int size) { T res = 0; for](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/989063/slide-6.jpg)
















; private: T *data; };](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/989063/slide-23.jpg)
![template array ::array() { data = new T[n]; } template array ::~array() { delete []data; }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/989063/slide-24.jpg)
 { if( k =n ) throw std::out_of_range("Out!");](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/989063/slide-25.jpg)
Схемы контактов
Weather definitions
Компьютерные шрифты. Отрисовка. Форматы. Требования
Коммуникативные характеристики интернета
Современная структура глобальной сети интернет
Зверский взгляд на Java
Техническое обслуживание и ремонт блока питания устройства Бегущая строка (макет)
Реляционные базы данных
Розробка інформаційної моделі. Лекция 13
Информационные процессы. Информация в информатике
Компьютерные сети
Разработка игры-симулятора на движке Unity3D
Как закрыть задание / Статусы
Отоме-клуб
Задание 3. Снегопад
12_Строки
Инструментальные средства обработки программного обеспечения
Windows 2017 Demo
Документы на новейших носителях
Системы счисления
Кодирование информации. Декодирование
Информационная система салона релаксации
Получение сведений из фонда данных государственной кадастровой оценки
Покупка в интернет-магазине
Машинное обучение
Расчет сопротивления проводника. Удельное сопротивление с применением 3d редактора blender
Работа с локальной сетью. Практическая работа №9
Программное обеспечение для расчета стоимости грузоперевозок ООО НПЗ-Транс