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


С++17 STL. Стандартная библиотека шаблонов
С++17 STL. Стандартная библиотека шаблонов
Головиц Я.
Год выпуска: 2018
Изд-во: Питер
ISBN: 978-5-4461-0680-6
Переплёт: мягкий
432 страниц
Цена: 730.00 грн.
Есть в наличии
в корзину

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

Преимущество издания - в подробном описании стандартной библиотеки шаблонов С++, STL. Ее свежая версия была выпущена в 2017 году. В книге вы найдете более 90 максимально реалистичных примеров, которые демонстрируют всю мощь STL. Многие из них станут базовыми кирпичиками для решения более универсальных задач.

Вооружившись этой книгой, вы сможете эффективно использовать С++17 для создания высококачественного и высокопроизводительного ПО, применимого в различных отраслях.



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




Предисловие................................................................................................................12
Темы, рассмотренные в этой книге.........................................................................13
Что вам нужно для работы с книгой.......................................................................14
Для кого предназначено издание...........................................................................15
Разделы..................................................................................................................16
Условные обозначения...........................................................................................16
Загрузка примеров кода.........................................................................................17
Глава 1. Новые возможности С++17 ........................................................................ 18
Введение................................................................................................................18
Применяем структурированные привязки (декомпозицию)
для распаковки набора возвращаемых значений....................................................19
Ограничиваем область видимости переменных в выражениях if и switch................23
Новые правила инициализатора с фигурными скобками.........................................26
Разрешаем конструктору автоматически выводить полученный
тип класса шаблона................................................................................................28
Упрощаем принятие решений во время компиляции с помощью constexpr-if...........30
Подключаем библиотеки с помощью встраиваемых переменных............................33
Реализуем вспомогательные функции с помощью выражений свертки...................36
Глава 2. Контейнеры STL ......................................................................................... 43
Введение................................................................................................................43
Используем идиому erase-remove для контейнера std::vector..................................46
Удаляем элементы из неотсортированного объекта класса std::vector
за время O(1)......................................................................................................... 50
Получаем доступ к экземплярам класса std::vector быстрым или безопасным
способом................................................................................................................ 53
Сохраняем сортировку экземпляров класса std::vector........................................... 55
Вставляем элементы в контейнер std::map эффективно и в соответствии
с условиями............................................................................................................ 57
Исследуем новую семантику подсказок для вставки элементов с помощью
метода std::map::insert........................................................................................... 61
Эффективно изменяем ключи элементов std::map.................................................. 64
Применяем контейнер std::unordered_map для пользовательских типов................. 67
Отсеиваем повторяющиеся слова из пользовательского ввода
и выводим их на экран в алфавитном порядке с помощью контейнера std::set....... 70
Реализуем простой ОПН-калькулятор с использованием контейнера std::stack....... 73
Подсчитываем частоту встречаемости слов с применением
контейнера std::map............................................................................................... 79
Вспомогательный стилистический редактор для поиска длинных
предложений в текстах с помощью std::multimap................................................... 82
Реализуем личный список текущих дел с помощью std::priority_queue.................... 87
Глава 3. Итераторы .................................................................................................. 91
Введение................................................................................................................ 91
Создаем собственный итерабельный диапазон данных........................................... 95
Обеспечиваем совместимость собственных итераторов с категориями
итераторов STL...................................................................................................... 98
Используем оболочки итераторов для заполнения обобщенных
структур данных................................................................................................... 101
Реализуем алгоритмы с помощью итераторов....................................................... 104
Перебор в обратную сторону с применением обратных адаптеров
для итераторов.................................................................................................... 108
Завершение перебора диапазонов данных с использованием
ограничителей..................................................................................................... 110
Автоматическая проверка кода итераторов с помощью
проверяемых итераторов...................................................................................... 113
Создаем собственный адаптер для итераторов-упаковщиков................................ 117
Глава 4. Лямбда-выражения ................................................................................... 123
Введение.............................................................................................................. 123
Динамическое определение функций с помощью лямбда-выражений................... 125
Добавляем полиморфизм путем оборачивания лямбда-выражений
в std::function....................................................................................................... 129
Создаем функции методом конкатенации............................................................. 132
Создаем сложные предикаты с помощью логической конъюнкции........................ 136
Вызываем несколько функций с одинаковыми входными данными....................... 138
Реализуем функцию transform_if с применением std::accumulate
и лямбда-выражений............................................................................................ 141
Генерируем декартово произведение на основе любых входных данных
во время компиляции........................................................................................... 146
Глава 5. Основы работы с алгоритмами STL ........................................................... 151
Введение.............................................................................................................. 151
Копируем элементы из одних контейнеров в другие............................................. 153
Сортируем контейнеры......................................................................................... 157
Удаляем конкретные элементы из контейнеров.................................................... 161
Преобразуем содержимое контейнеров................................................................ 164
Выполняем поиск элементов в упорядоченных и неупорядоченных векторах....... 166
Ограничиваем допустимые значения вектора конкретным численным
диапазоном с помощью std::clamp........................................................................ 172
Находим шаблоны в строках с помощью функции std::search и выбираем
оптимальную реализацию.................................................................................... 175
Делаем выборку данных из крупных векторов...................................................... 179
Выполняем перестановки во входных последовательностях................................. 182
Инструмент для слияния словарей....................................................................... 184
Глава 6. Сложные случаи использования алгоритмов STL ...................................... 188
Введение.............................................................................................................. 188
Реализуем класс префиксного дерева с использованием алгоритмов STL............. 189
Создаем генератор поисковых подсказок с помощью
префиксных деревьев........................................................................................... 194
Реализуем формулу преобразования Фурье с применением численных
алгоритмов STL.................................................................................................... 199
Определяем ошибку суммы двух векторов............................................................ 207
Реализуем отрисовщик множества Мандельброта в ASCII..................................... 210
Создаем собственный алгоритм split..................................................................... 215
Создаем полезные алгоритмы на основе стандартных алгоритмов gather............. 219
Удаляем лишние пробелы между словами............................................................ 223
Компрессия и декомпрессия строк........................................................................ 225
Глава 7. Строки, классы потоков и регулярные выражения .................................... 229
Введение.............................................................................................................. 229
Создание, конкатенация и преобразование строк................................................. 231
Удаляем пробелы из начала и конца строк........................................................... 234
Преимущества использования std::string без затрат
на создание объектов std::string........................................................................... 236
Считываем значения из пользовательского ввода................................................ 240
Подсчитываем все слова в файле......................................................................... 243
Форматируем ваши выходные данные с помощью манипуляторов
потока ввода-вывода............................................................................................ 245
Инициализируем сложные объекты из файла вывода........................................... 251
Заполняем контейнеры с применением итераторов std::istream............................ 254
Выводим любые данные на экран с помощью итераторов std::ostream................. 258
Перенаправляем выходные данные в файл для конкретных разделов кода.......... 262
Создаем пользовательские строковые классы путем
наследования std::char_traits................................................................................ 266
Токенизация входных данных с помощью библиотеки для работы
с регулярными выражениями............................................................................... 271
Удобный и красивый динамический вывод чисел на экран в зависимости
от контекста......................................................................................................... 275
Перехватываем читабельные исключения для ошибок потока std::iostream.......... 277
Глава 8. Вспомогательные классы .......................................................................... 281
Введение.............................................................................................................. 281
Преобразуем единицы измерения времени с помощью std::ratio .......................... 282
Выполняем преобразование между абсолютными и относительными
значениями с использованием std::chrono............................................................ 287
Безопасно извещаем о сбое с помощью std::optional............................................ 290
Применяем функции для кортежей....................................................................... 293
Быстрое создание структур данных с помощью std::tuple..................................... 296
Замена void* с использованием std::any для повышения безопасности типов....... 303
Хранение разных типов с применением std::variant.............................................. 306
Автоматическое управление ресурсами с помощью std::unique_ptr....................... 311
Автоматическое управление разделяемой памятью кучи
с использованием std::shared_ptr......................................................................... 314
Работаем со слабыми указателями на разделяемые объекты................................ 320
Упрощаем управление ресурсами устаревших API с применением
умных указателей................................................................................................. 324
Открываем доступ к разным переменным - членам одного объекта.................... 327
Генерируем случайные числа и выбираем правильный генератор
случайных чисел.................................................................................................. 330
Генерируем случайные числа и создаем конкретные распределения
с помощью STL..................................................................................................... 335
Глава 9. Параллелизм и конкурентность ................................................................ 343
Введение.............................................................................................................. 343
Автоматическое распараллеливание кода, использующего стандартные
алгоритмы............................................................................................................ 344
Приостанавливаем программу на конкретный промежуток времени..................... 350
Запускаем и приостанавливаем потоки................................................................. 352
Выполняем устойчивую к исключениям общую блокировку
с помощью std::unique_lock и std::shared_lock...................................................... 356
Избегаем взаимных блокировок с применением std::scoped_lock.......................... 363
Синхронизация конкурентного использования std::cout........................................ 366
Безопасно откладываем инициализацию с помощью std::call_once....................... 370
Отправляем выполнение задач в фоновый режим с применением std::async........ 372
Реализуем идиому "производитель/потребитель"
с использованием std::condition_variable............................................................... 377
Реализуем идиому "несколько производителей/потребителей"
с помощью std::condition_variable......................................................................... 381
Распараллеливание отрисовщика множества Мандельброта в ASCII
с применением std::async..................................................................................... 387
Небольшая автоматическая библиотека для распараллеливания
с использованием std::future................................................................................ 391
Глава 10. Файловая система .................................................................................. 400
Введение.............................................................................................................. 400
Реализуем нормализатор пути файла................................................................... 401
Получаем канонические пути к файлам из относительных путей.......................... 404
Составляем список всех файлов в каталоге.......................................................... 407
Инструмент текстового поиска в стиле grep.......................................................... 412
Инструмент для автоматического переименования файлов.................................. 415
Создаем индикатор эксплуатации диска............................................................... 418
Подбиваем статистику о типах файлов................................................................. 420
Инструмент для уменьшения размера папки путем замены дубликатов
символьными ссылками........................................................................................ 423
Об авторе.................................................................................................................. 428
О рецензенте............................................................................................................. 429

С этой книгой чаще всего покупают:
Осваиваем C++17 STL

Осваиваем C++17 STL

О'Двайр А.
Год выпуска: 2018
Изд-во: ДМК
в корзину
Только на 1 книгу
 
Стандартная библиотека C++: справочное руководство

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

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

Хотите оставить отзыв? У Вас возникли вопросы о книге "С++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