Содержание
- 2. Темы лекции
- 3. Библиотека стандартных шаблонов (STL) (англ. Standard Template Library) — набор согласованных обобщённых алгоритмов, контейнеров, средств доступа
- 4. Состав STL: контейнеры, итераторы, алгоритмы, аллокаторы, адаптеры. Контейнер – хранилище, единицами хранения (элементами) являются другие объекты
- 5. Состав STL: Последовательный контейнер представляет множество объектов одного типа в строго линейной последовательности. Ассоциативный контейнер обеспечивает
- 8. Шаблоны STL основывается на понятии шаблона. Предположим, что для некоторого числа х > 0 нужно часто
- 9. Шаблонные функции Вместо того чтобы писать две функции: double f(double x) { double x2 = 2
- 10. Шаблонные функции // ftempl.срр: Шаблонная функция. #include using namespace std; template T f (T x) {
- 11. Шаблонные структуры Пусть нам нужна структура Pair, чтобы хранить пары значений. Иногда оба значения принадлежат к
- 12. Шаблонные структуры Вместо этого напишем одну шаблонную структуру: // cltempl.срр: #include template struct Pair { void
- 13. Шаблонные структуры template void Pair ::showQ() { cout } int main() { Pair a(37.0, 5.0); Pair
- 14. Замечания Как пользователи STL мы можем не беспокоиться об определениях, так как шаблонные функции, структуры и
- 16. Идея итераторов: Итератор – аналог указателя. Получив итератор какого-то элемента контейнера при помощи операторов инкремента ++
- 17. Итераторы Какие функции должен выполнять итератор? Возможность разыменования того объекта, на который указывает итератор. Возможность изменить
- 18. Типы Итераторы Input Iterator – получаем доступ только для чтения данных (необходим инкремент). Output Iterator –
- 19. Иерархия итераторов Random Access Iterator Bidirectional Iterator Forward Iterator Input Iterator Output Iterator Trivial Iterator Все
- 20. Итераторы обеспечивают доступ к элементам контейнера. С помощью итераторов очень удобно перебирать элементы. Итератор описывается типом
- 21. Операции с итераторами С итераторами можно проводить следующие операции: *iter: получение элемента, на который указывает итератор
- 23. Алгоритмы Алгориты делятся на несколько категорий: немодифицирующие алгоритмы (не изменяющие порядок следования элементов в контейнере) –
- 24. Аллокаторы Аллокаторы предназначены для выделения и освобождения памяти, – низкоуровневый интерфейс. Если контейнер выделяет память при
- 26. Синтаксис вызова обобщенного алгоритма find where = find(first, last, value); Параметры: • first - итератор, указывающий
- 27. #include #include #include #include // Алгоритм find using namespace std; int main() { cout char s[]
- 28. Понятие итератора является ключевым в STL. Алгоритмы STL написаны с применением итераторов в качестве параметров, а
- 30. Vector (Вектор) .
- 31. Vector — это замена стандартному динамическому массиву, память для которого выделяется вручную, с помощью оператора new.
- 32. Методы Vector: push_back() — добавить последний элемент pop_back() — удалить последний элемент clear() — удалить все
- 33. #include #include #include #include // Алгоритм find using namespace std; int main() { cout vector vectorl
- 34. List .
- 35. Контейнер list представляет двухсвязный список. Для его использования необходимо подключить заголовочный файл list: Создание списка: #include
- 36. Получение элементов В отличие от других контейнеров для типа list не определена операция обращения по индексу
- 37. #include #include int main() { std::list numbers = { 1, 2, 3, 4, 5 }; int
- 38. Размер списка Для получения размера списка можно использовать функцию size(): Функция empty() позволяет узнать, пуст ли
- 39. std::list numbers = { 1, 2, 3, 4, 5, 6 }; numbers.resize(4); // оставляем первые четыре
- 40. Изменение элементов списка Функция assign() позволяет заменить все элементы списка определенным набором. Она имеет следующие формы:
- 41. Функция swap() обменивает значениями два списка: std::list list1 = { 1, 2, 3, 4, 5 };
- 42. Добавление элементов Для добавления элементов в контейнер list применяется ряд функций. push_back(val): добавляет значение val в
- 43. Функции push_back(), push_front(), emplace_back() и emplace_front(): Добавление в середину списка с помощью функции emplace(): std::list numbers
- 44. Добавление в середину списка с помощью функции insert(): std::list numbers1 = { 1, 2, 3, 4,
- 45. Удаление элементов Для удаления элементов из контейнера list могут применяться следующие функции: clear(p): удаляет все элементы
- 46. #include #include #include #include using namespace std; int main() { cout list listl = make >("C++
- 47. #include #include #include #include using namespace std; int main() { cout deque dequel = make >("C++
- 48. Map .
- 49. Что такое map Это ассоциативный контейнер, который работает по принципу — [ключ — значение]. Он схож
- 50. Как создать map Сперва понадобится подключить соответствующую библиотеку: Чтобы создать map нужно воспользоваться данной конструкцией: —
- 51. Множества и словари map (multimap) – ассоциативный контейнер, который отсортированные список пар в соответствии с уникальным
- 52. Итераторы для map .
- 53. Итераторы для map Использование итераторов одна из главных тем, если вам понадобится оперировать с этим контейнером.
- 54. #include #include using namespace std; int main() { setlocale(0, ""); map mp; cout > n; for
- 55. Методы map insert Это функция вставки нового элемента. num_1 — ключ. num_2 — значение. Мы можем
- 56. find У этой функции основная цель узнать, есть ли определенный ключ в контейнере. - Если он
- 57. erase Иногда приходится удалять элементы. Для этого у нас есть функция — erase(). Давайте посмотрим как
- 58. Множества и словари set (multiset) – ассоциативный контейнер, который содержит элементы, отсортированные в соответствии с уникальным
- 60. Обобщенный алгоритм merge. Алгоритм merge используется для объединения двух отсортированных последовательностей в единую (отсортированную) последовательность. Параметры
- 61. #include using namespace std; int main() { cout char s[] = "aeiou"; int len = strlen(s);
- 62. #include using namespace std; int main() { cout char s[] = "acegikm"; deque deque1 = make
- 64. Алгоритмы стандартной библиотеки Немодифицирующие операции над последовательностями: all_of any_of none_of // Проверяют, является ли предикат верным
- 65. adjacent_find // Ищет в диапазоне два одинаковых смежных элемента mismatch // Находит первую позицию, в которой
- 66. Модифицирующие операции над последовательностями: copy copy_if // Копирует ряд элементов copy_n // Копирует ряд элементов в
- 67. replace replace_if // заменяет все значения, удовлетворяющие определенным // критериям с другим значением swap // обмен
- 68. Операции разделения: is_partitioned // определяет, разделен ли диапазон данным предикатом partition // делит диапазон элементов на
- 69. Операции, относящиеся к упорядочиванию: is_sorted // проверяет, является ли диапазон отсортированным в порядке // возрастания is_sorted_until
- 70. Операции двоичного поиска (на отсортированных диапазонах) : lower_bound // находит первый элемент диапазона больший чем заданное
- 71. Операции над множествами (на отсортированных диапазонах) : merge // слияние двух отсортированных диапазонов inplace_merge // слияние
- 72. Операции над пирамидой (кучей) : is_heap // проверяет является ли данный диапазон пирамидой is_heap_until // находит
- 73. Этот заголовочный файл содержит набор алгоритмов для выполнения определенных операций над последовательностями числовых значений. Благодаря своей
- 74. Операции минимума/максимума: max // Возвращает наибольший из двух аргументов max_element // Возвращает наибольший элемент в диапазоне
- 75. Алгоритмы из библиотеки C : qsort // Сортирует диапазон элементов любого типа bsearch // Ищет в
- 77. Предикат. Функция-предикат и функтор Предикат, это нечто функциональное, возвращающее тип bool. Есть две возможности организации такой
- 78. bool f (const int& x,const int& y){ return x // создаем синоним типа - указатель на
- 79. Функтор Есть большое множество вариантов их практического применения: - Необходим вызов обычной функции или функции-члена класса.
- 80. any_of template bool any_of (InputIterator first, InputIterator last, UnaryPredicate pred); Проверяет, соответствует ли какой-либо элемент в
- 81. #include // std::cout #include // std::any_of #include // std::array int main () { std::array foo =
- 83. #include #include // Алгоритм accumulate using namespace std; int main() { cout int х[5] = {2,
- 84. Рассмотрим, как функция accumulate использует итераторы. template T accumulate(InputIterator first, Inputlterator last, T init) { while(first
- 85. Функциональные объекты Из определения шаблона accumulate в предыдущем примере видно, что для элементов контейнера задан оператор
- 86. Пример. Использование accumulate для расчета произведения элементов #include #include #include #include using namespace std; int mult(int
- 87. Пример. Расчет произведения с применением функционального объекта class multiply { public: int operator()(int x, int y)
- 88. Пример использования словаря Создаём структуру TicketInfo, который будет содержать все необходимые поля для заявки, а также
- 89. Описание класса struct TicketInfo { long ticket_id; // идентификатор билета long n_reis; // номер рейса string
- 90. int add_ticket() int add_ticket() { setlocale(LC_ALL,"Russian"); long reis_n, id_ticket; char ch[30]; string str; TicketInfo tickets; multimap
- 92. Скачать презентацию



























































![#include using namespace std; int main() { cout char s[] = "aeiou";](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/924419/slide-60.jpg)
![#include using namespace std; int main() { cout char s[] = "acegikm";](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/924419/slide-61.jpg)



























![int add_ticket() int add_ticket() { setlocale(LC_ALL,"Russian"); long reis_n, id_ticket; char ch[30]; string](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/924419/slide-89.jpg)
Управление развитием информационной инфраструктуры субъектов РФ
Краткая характеристика программ офисного пакета
Обратная геодезичекая задача. Геодезическая информационная система
Количество путей в графе
Навигация в электронных изданиях
Проблемные вопросы по статистической форме 2-услуги
Понятие одномерного массива
Разработка информационной панели (dashboard) ключевых показателей деятельности органов исполнительной власти субъекта РФ
Математическое программное обеспечение автоматизированных систем управления
Системы управления базами данных (СУБД)
Измерение информации
Интерфейсы на Java
Рендеры
Моделирование. Системный подход в моделировании. Лекция 7. Часть 2
Линейный свет и цветовой контраст
Информационная система как объект воздействия злоумышленников
Локальні мережі
20140111_didakticheskie_vozmozhnosti_metodov_i_priyomov_obucheniya_geografii
Проектирование программных пакетов
Задание и изображение поверхностей
Презентация на тему Операционная система MS-DOS
Плавание по зонам. Изменение цвета спрайта в зависимости от положения на координатной плоскости
Осуществление интеграции программных модулей
Инженерия программного обеспечения
Основные конструкции языка С++. Подпрограммы (функции). Создаем переключатель цвета
Презентация на тему Электронная таблица EXCEL
ShotOut 3D
Департамент по разработке решений в сфере закупок