Ешь, двигайся, спи Жесткий подход Дэна Кеннеди Телефоны Бизбук - c 10 до 18 по будним дням
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• Осваиваем C++17 STL, О'Двайр А.


Осваиваем C++17 STL
Осваиваем C++17 STL
О'Двайр А.
Год выпуска: 2018
Изд-во: ДМК
ISBN: 978-5-97060-663-6
Переплёт: мягкий
352 страниц
Цена: 1040.00 грн.
Есть в наличии
в корзину

Instant Purshare Только на 1 книгу
Доставка: по Киеву - в течение суток*
                по Украине - от 2 до 10 суток*
Стандарт C++17, которому посвящена книга "Осваиваем C++17 STL", удвоил объем библиотеки в сравнении с С++11. Вы узнаете о наиболее важных особенностях стандартной библиотеки C++17 со множеством примеров, научитесь создавать свои типы итераторов, диспетчеры памяти, пулы потоков выполнения. Также рассмотрены отличия мономорфизма, полиморфизма и обобщенных алгоритмов.
Издание адресовано разработчикам, желающим овладеть новыми особенностями библиотеки C++17 STL и в полной мере использовать ее компоненты. Знакомство с языком C++ является обязательным условием.



Оглавление книги "Осваиваем C++17 STL"




Об авторе...............................................................................................................................10
О научном редакторе...........................................................................................................11
Предисловие..........................................................................................................................12
Содержание книги...........................................................................................................................12
Что потребуется для работы с книгой.....................................................................................13
Кому адресована эта книга..........................................................................................................13
Типографские соглашения...........................................................................................................14
Отзывы и пожелания......................................................................................................................14
Скачивание исходного кода примеров..................................................................................15
Список опечаток...............................................................................................................................15
Нарушение авторских прав.........................................................................................................15
Глава 1. Классический полиморфизм и обобщенное программирование.................16
Конкретные мономорфные функции .....................................................................................16
Классические полиморфные функции....................................................................................17
Обобщенное программирование с шаблонами.................................................................19
Итоги.....................................................................................................................................................22
Глава 2. Итераторы и диапазоны.......................................................................................24
Проблема целочисленных индексов.......................................................................................24
За границами указателей.............................................................................................................25
Константные итераторы................................................................................................................28
Пара итераторов определяет диапазон.................................................................................29
Категории итераторов...................................................................................................................31
Итераторы ввода и вывода.........................................................................................................33
Объединяем все вместе................................................................................................................36
Устаревший std::iterator.................................................................................................................39
Итоги.....................................................................................................................................................42
Глава 3. Алгоритмы с парами итераторов.........................................................................44
Замечание о заголовках...............................................................................................................44
Диапазонные алгоритмы только для чтения........................................................................44
Манипулирование данными с std::copy..................................................................................51
Вариации на тему: std::move и std::move_iterator..............................................................54
Непростое копирование с std::transform...............................................................................57
Диапазонные алгоритмы только для записи.......................................................................59
Алгоритмы, влияющие на жизненный цикл объектов......................................................60
Наш первый перестановочный алгоритм: std::sort............................................................62
Обмен местами, обратное упорядочение и разделение.................................................63
Ротация и перестановка................................................................................................................67
Кучи и пирамидальная сортировка..........................................................................................69
Слияние и сортировка слиянием...............................................................................................71
Поиск и вставка в сортированный массив с std::lower_bound.....................................71
Удаление из сортированного массива с std::remove_if....................................................73
Итоги.....................................................................................................................................................77
Глава 4. Зоопарк контейнеров............................................................................................78
Понятие владения...........................................................................................................................78
Простейший контейнер: std::array.................................................................................80
Рабочая лошадка: std::vector...............................................................................................84
Изменение размера std::vector.............................................................................................................85
Вставка и стирание в std::vector...........................................................................................................89
Ловушки vector...............................................................................................................................90
Ловушки в конструкторах перемещения без noexcept..............................................................91
Быстрый гибрид: std::deque..................................................................................................93
Особый набор возможностей: std::list.............................................................................94
Какие отличительные особенности имеет std::list?......................................................................95
Список без удобств std::forward_list.................................................................................97
Абстракции с использованием std::stack и std::queue.......................................98
Удобный адаптер: std::priority_queue...............................................................................99
Деревья: std::set и std::map................................................................................... 100
Замечание о прозрачных компараторах....................................................................................... 104
Необычные std::multiset и std::multimap......................................................... 105
Перемещение элементов без перемещения................................................................................107
Хеши: std::unordered_set и std::unordered_map............................................. 109
Фактор загрузки и списки в корзинах............................................................................................ 111
Откуда берется память?............................................................................................................. 112
Итоги.................................................................................................................................................. 113
Глава 5. Словарные типы.................................................................................................. 114
История std::string........................................................................................................................ 114
Маркировка ссылочных типов с reference_wrapper ..................................................... 116
C++11 и алгебраические типы................................................................................................. 117
Работа с std::tuple......................................................................................................................... 118
Манипулирование значениями кортежа....................................................................................... 120
Замечание об именованных классах.............................................................................................. 121
Выражение альтернатив с помощью std::variant............................................................. 122
Чтение вариантов.................................................................................................................................... 123
О make_variant и семантике типа-значения................................................................................. 125
Задержка инициализации с помощью std::optional....................................................... 127
И снова variant............................................................................................................................... 131
Бесконечное число альтернатив с std::any......................................................................... 132
std::any и полиморфные типы............................................................................................................. 134
Коротко о стирании типа........................................................................................................... 135
std::any и копирование...........................................................................................................................137
И снова о стирании типов: std::function.............................................................................. 138
std::function, копирование и размещение в динамической памяти................................... 140
Итоги.................................................................................................................................................. 141
Глава 6. Умные указатели................................................................................................. 142
История появления умных указателей................................................................................ 142
Умные указатели никогда ничего не забывают................................................................ 143
Автоматическое управление памятью с std::unique_ptr........................................ 144
Почему в C++ нет ключевого слова finally.....................................................................................147
Настройка обратного вызова удаления......................................................................................... 148
Управление массивами с помощью std::unique_ptr........................................................ 149
Подсчет ссылок с std::shared_ptr..................................................................................... 150
Не допускайте двойного управления! ........................................................................................... 153
Удерживание обнуляемых дескрипторов с помощью weak_ptr.......................................... 153
Сообщение информации о себе с std::enable_shared_from_this.......................................... 156
Странно рекурсивный шаблон проектирования........................................................................ 159
Заключительное замечание................................................................................................................ 160
Обозначение неисключительности с observer_ptr.................................................. 160
Итоги.................................................................................................................................................. 162
Глава 7. Конкуренция......................................................................................................... 163
Проблемы с volatile..................................................................................................................... 163
Использование std::atomic для безопасного доступа
в многопоточной среде.............................................................................................................. 166
Атомарное выполнение сложных операций................................................................................ 168
Большие атомарные типы.................................................................................................................... 170
Поочередное выполнение с std::mutex............................................................................... 171
Правильный порядок "приобретения блокировок"................................................................. 173
Всегда связывайте мьютекс с управляемыми данными............................................... 176
Специальные типы мьютексов................................................................................................ 180
Повышение статуса блокировки для чтения/записи................................................................ 183
Понижение статуса блокировки для чтения/записи................................................................. 183
Ожидание условия....................................................................................................................... 184
Обещания о будущем.................................................................................................................. 187
Подготовка заданий для отложенного выполнения...................................................... 190
Будущее механизма future....................................................................................................... 192
Поговорим о потоках.................................................................................................................. 194
Идентификация отдельных потоков и текущего потока............................................... 196
Исчерпание потоков и std::async........................................................................................... 198
Создание своего пула потоков................................................................................................ 200
Оптимизация производительности пула потоков........................................................... 204
Итоги.................................................................................................................................................. 206
Глава 8. Диспетчеры памяти............................................................................................ 208
Диспетчер памяти обслуживает ресурс памяти............................................................... 209
Еще раз об интерфейсах и понятиях.............................................................................................. 210
Определение кучи с помощью memory_resource........................................................... 212
Использование стандартных ресурсов памяти................................................................ 215
Выделение из ресурса пулов...............................................................................................................217
500-головый стандартный диспетчер памяти.................................................................. 218
Метаданные, сопровождающие причудливые указатели....................................................... 222
Прикрепление контейнера к единственному ресурсу памяти................................... 227
Использование диспетчеров памяти стандартных типов............................................ 229
Настройка ресурса памяти по умолчанию.................................................................................... 230
Создание контейнера с поддержкой выбора диспетчера памяти........................... 231
Передача вниз с scoped_allocator_adaptor........................................................................ 237
Передача разных диспетчеров памяти.......................................................................................... 240
Итоги.................................................................................................................................................. 242
Глава 9 Потоки ввода/вывода ........................................................................................ 244
Проблемы ввода/вывода в C++.............................................................................................. 244
Буферизация и форматирование........................................................................................... 246
POSIX API.......................................................................................................................................... 247
Стандартный C API........................................................................................................................ 250
Буферизация в стандартном C API................................................................................................... 252
Форматирование с помощью printf и snprintf.............................................................................257
Классическая иерархия потоков ввода/вывода.............................................................. 260
Потоки данных и манипуляторы....................................................................................................... 264
Потоки данных и обертки.....................................................................................................................267
Решение проблемы манипуляторов................................................................................................ 269
Форматирование с ostringstream..................................................................................................... 270
Примечание о региональных настройках..................................................................................... 271
Преобразование чисел в строки............................................................................................ 273
Преобразование строк в числа............................................................................................... 275
Чтение по одной строке или по одному слову................................................................. 279
Итоги.................................................................................................................................................. 281
Глава 10. Регулярные выражения................................................................................... 282
Что такое регулярное выражение?....................................................................................... 283
Замечание об экранировании обратными слешами................................................................ 284
Воплощение регулярных выражений в объектах std::regex....................................... 286
Сопоставление и поиск.............................................................................................................. 287
Извлечение совпадений с подвыражениями.............................................................................. 288
Преобразование совпадений в значения данных..................................................................... 292
Итерации по нескольким совпадениям.............................................................................. 293
Использование регулярных выражений для замены строк....................................... 297
Грамматика регулярных выражений ECMAScript............................................................ 299
Непоглощающие конструкции........................................................................................................... 302
Малопонятные особенности и ловушки ECMAScript..................................................... 303
Итоги.................................................................................................................................................. 305
Глава 11. Случайные числа............................................................................................... 306
Случайные и псевдослучайные числа.................................................................................. 306
Проблема функции rand()......................................................................................................... 308
Решение проблем с ................................................................................................ 310
Генераторы...................................................................................................................................... 310
Истинно случайные биты и std::random_device.......................................................................... 311
Псевдослучайные биты с std::mt19937.......................................................................................... 311
Фильтрация вывода генераторов с помощью адаптеров....................................................... 313
Распределения............................................................................................................................... 316
Имитация броска игровой кости с uniform_int_distribution.................................................. 316
Генерирование выборок с normal_distribution........................................................................... 318
Взвешенный выбор с discrete_distribution................................................................................... 319
Перемешивание карт с std::shuffle................................................................................................... 320
Итоги.................................................................................................................................................. 321
Глава 12. Файловая система............................................................................................. 323
Примечание о пространствах имен...................................................................................... 323
Очень длинное примечание об уведомлениях об ошибках....................................... 325
Использование ...........................................................................................................327
Коды ошибок и условия ошибок....................................................................................................... 331
Возбуждение ошибок с std::system_error...................................................................................... 334
Файловые системы и пути........................................................................................................ 336
Представление путей в C++................................................................................................................. 338
Операции с путями................................................................................................................................. 340
Получение информации о файлах с directory_entry...................................................... 342
Обход каталогов с directory_iterator..................................................................................... 343
Рекурсивный обход каталогов........................................................................................................... 343
Изменение файловой системы............................................................................................... 344
Получение информации о диске........................................................................................... 345
Итоги.................................................................................................................................................. 346
Предметный указатель......................................................................................................347

С этой книгой чаще всего покупают:
Шаблоны C++. Справочник разработчика, 2-е издание

Шаблоны C++. Справочник разработчика, 2-е издание

рекомендуем
Дэвид Вандевурд, Николаи М. Джосаттис, Дуглас Грегор
Год выпуска: 2018
Изд-во: Диалектика-Вильямс
в корзину
Только на 1 книгу
 
Стандартная библиотека C++: справочное руководство

Стандартная библиотека C++: справочное руководство

рекомендуем
Николай М. Джосаттис
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
в корзину
Только на 1 книгу
Цена: 870.00 грн. 
 
Цена: 1050.00 грн. 
С++17 STL. Стандартная библиотека шаблонов

С++17 STL. Стандартная библиотека шаблонов

Головиц Я.
Год выпуска: 2018
Изд-во: Питер

в корзину

Instant Purshare Только на 1 книгу
 
   
Цена: 730.00 грн. 
   

Хотите оставить отзыв? У Вас возникли вопросы о книге "Осваиваем C++17 STL, О'Двайр А." ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

* Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 9 до 18 по будним дням: Киев 331-04-53, МТС (050) 809-56-66, Киевстар (067) 408-26-36, Лайф (063) 227-24-47, Интертелеком (094) 831-04-53 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov