Осваиваем C++17 STL
Book information
Description
Оглавление Предисловие от разработчиков С++ в России и Беларуси Об авторе О научном редакторе Предисловие Содержание книги Что потребуется для работы с книгой Кому адресована эта книга Типографские соглашения Отзывы и пожелания Скачивание исходного кода примеров Список опечаток Нарушение авторских прав Глава 1. Классический полиморфизм и обобщенное программирование Конкретные мономорфные функции Классические полиморфные функции Обобщенное программирование с шаблонами Итоги Глава 2. Итераторы и диапазоны Проблема целочисленных индексов За границами указателей Константные итераторы Пара итераторов определяет диапазон Категории итераторов Итераторы ввода и вывода Объединяем все вместе Устаревший std::iterator Итоги Глава 3. Алгоритмы с парами итераторов Замечание о заголовках Диапазонные алгоритмы только для чтения Манипулирование данными с std::copy Вариации на тему: std::move и std::move_iterator Непростое копирование с std::transform Диапазонные алгоритмы только для записи Алгоритмы, влияющие на жизненный цикл объектов Наш первый перестановочный алгоритм: std::sort Обмен местами, обратное упорядочение и разделение Ротация и перестановка Кучи и пирамидальная сортировка Слияние и сортировка слиянием Поиск и вставка в сортированный массив с std::lower_bound Удаление из сортированного массива с std::remove_if Итоги Глава 4. Зоопарк контейнеров Понятие владения Простейший контейнер: std::array Рабочая лошадка: std::vector Изменение размера std::vector Вставка и стирание в std::vector Ловушки vector Ловушки в конструкторах перемещения без noexcept Быстрый гибрид: std::deque Особый набор возможностей: std::list Какие отличительные особенности имеет std::list? Список без удобств std::forward_list Абстракции с использованием std::stack и std::queue Удобный адаптер: std::priority_queue Деревья: std::set и std::map Замечание о прозрачных компараторах Необычные std::multiset и std::multimap Перемещение элементов без перемещения Хеши: std::unordered_set и std::unordered_map Фактор загрузки и списки в корзинах Откуда берется память? Итоги Глава 5. Словарные типы История std::string Маркировка ссылочных типов с reference_wrapper C++11 и алгебраические типы Работа с std::tuple Манипулирование значениями кортежа Замечание об именованных классах Выражение альтернатив с помощью std::variant Чтение вариантов О make_variant и семантике типа-значения Задержка инициализации с помощью std::optional И снова variant Бесконечное число альтернатив с std::any std::any и полиморфные типы Коротко о стирании типа std::any и копирование И снова о стирании типов: std::function std::function, копирование и размещение в динамической памяти Итоги Глава 6. Умные указатели История появления умных указателей Умные указатели никогда ничего не забывают Автоматическое управление памятью с std::unique_ptr Почему в C++ нет ключевого слова finally Настройка обратного вызова удаления Управление массивами с помощью std::unique_ptr Подсчет ссылок с std::shared_ptr Не допускайте двойного управления! Удерживание обнуляемых дескрипторов с помощью weak_ptr Сообщение информации о себе с std::enable_shared_from_this Странно рекурсивный шаблон проектирования Заключительное замечание Обозначение неисключительности с observer_ptr Итоги Глава 7. Конкуренция Проблемы с volatile Использование std::atomic для безопасного доступа в многопоточной среде Атомарное выполнение сложных операций Большие атомарные типы Поочередное выполнение с std::mutex Правильный порядок «приобретения блокировок» Всегда связывайте мьютекс с управляемыми данными Специальные типы мьютексов Повышение статуса блокировки для чтения/записи Понижение статуса блокировки для чтения/записи Ожидание условия Обещания о будущем Подготовка заданий для отложенного выполнения Будущее механизма future Поговорим о потоках Идентификация отдельных потоков и текущего потока Исчерпание потоков и std::async Создание своего пула потоков Оптимизация производительности пула потоков Итоги Глава 8. Диспетчеры памяти Диспетчер памяти обслуживает ресурс памяти Еще раз об интерфейсах и понятиях Определение кучи с помощью memory_resource Использование стандартных ресурсов памяти Выделение из ресурса пулов 500-головый стандартный диспетчер памяти Метаданные, сопровождающие причудливые указатели Прикрепление контейнера к единственному ресурсу памяти Использование диспетчеров памяти стандартных типов Настройка ресурса памяти по умолчанию Создание контейнера с поддержкой выбора диспетчера памяти Передача вниз с scoped_allocator_adaptor Передача разных диспетчеров памяти Итоги Глава 9 Потоки ввода/вывода Проблемы ввода/вывода в C++ Буферизация и форматирование POSIX API Стандартный C API Буферизация в стандартном C API Форматирование с помощью printf и snprintf Классическая иерархия потоков ввода/вывода Потоки данных и манипуляторы Потоки данных и обертки Решение проблемы манипуляторов Форматирование с ostringstream Примечание о региональных настройках Преобразование чисел в строки Преобразование строк в числа Чтение по одной строке или по одному слову Итоги Глава 10. Регулярные выражения Что такое регулярное выражение? Замечание об экранировании обратными слешами Воплощение регулярных выражений в объектах std::regex Сопоставление и поиск Извлечение совпадений с подвыражениями Преобразование совпадений в значения данных Итерации по нескольким совпадениям Использование регулярных выражений для замены строк Грамматика регулярных выражений ECMAScript Непоглощающие конструкции Малопонятные особенности и ловушки ECMAScript Итоги Глава 11. Случайные числа Случайные и псевдослучайные числа Проблема функции rand() Решение проблем с Генераторы Истинно случайные биты и std::random_device Псевдослучайные биты с std::mt19937 Фильтрация вывода генераторов с помощью адаптеров Распределения Имитация броска игровой кости с uniform_int_distribution Генерирование выборок с normal_distribution Взвешенный выбор с discrete_distribution Перемешивание карт с std::shuffle Итоги Глава 12. Файловая система Примечание о пространствах имен Очень длинное примечание об уведомлениях об ошибках Использование Коды ошибок и условия ошибок Возбуждение ошибок с std::system_error Файловые системы и пути Представление путей в C++ Операции с путями Получение информации о файлах с directory_entry Обход каталогов с directory_iterator Рекурсивный обход каталогов Изменение файловой системы Получение информации о диске Итоги Предметный указатель
Similar books
Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique
2025 · PDF
Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная
2022 · PDF
Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание
2021 · PDF
Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)
2022 · PDF
Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)
2023 · PDF
Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"
2022 · PDF
Философия. Учебно-методический комплекс дисциплины по направлениям подготовки: 51.03.03 (071800.62) «Социально-культурная деятельность», профили подготовки: «Социально-культурные технологии в индустрии досуга», «Менеджмент социально-культурной деятельности», «Менеджмент детско-юношеского досуга», «Постановка и продюсирование культурно-досуговых программ», «Социально-культурная анимация и рекреация»; 38.03.02 (080200.62) «Менеджмент», профили подготовки: «Управление человеческими ресурсами», «Управление малым бизнесом», квалификации (степень) выпускника – «бакалавр»
2014 · PDF
Проектирование устройств приема и обработки сигналов: учебно-методическое пособие по курсу "Устройства приема и обработки сигналов" для студентов всех форм обучения специальностей: 210400.62 Радиотехника. Бакалавр Б.3.10. Основы цифровой обработки сигналов; 210700.62 Системы мобильной связи. Бакалавр Б.3.19. Радиоприемные устройства систем мобильной связи; 210601.65 Радиоэлектронные системы и комплексы. Специалист С.3.18. Устройства приема и обработки сигналов; 090302.65 Защита информации в системах связи и управления. Специалист С.3.30. Устройства приема и обработки сигналов
2015 · PDF