Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Михаил Абрамян. Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи
Предисловие
Раздел 1. Описание библиотеки STL
1.1. Итераторы
1.1.1. Общее описание
1.1.2. Итераторы потоков ввода-вывода
1.2. Контейнеры
1.2.1. Общее описание
1.2.2. Типы, определенные в контейнерах. Параметры конструкторов
1.2.3. Функции-члены всех контейнеров
1.2.4. Функции-члены последовательных контейнеров
1.2.5. Дополнительные функции-члены класса list
1.2.6. Функции-члены ассоциативных контейнеров
1.2.7. Вставка и удаление в последовательных контейнерах
1.2.8. Контейнеры-адаптеры и контейнеры, добавленные в стандарт C++11
1.2.9. Дополнение: обратные итераторы
1.3. Алгоритмы
1.3.1. Общее описание
1.3.2. Соглашения об именовании параметров
1.3.3. Алгоритмы общего назначения
1.3.4. Численные алгоритмы
1.3.5. Дополнение: итераторы вставки
1.4. Стандартные функциональные объекты
1.4.1. Общее описание
1.4.2. Функциональные адаптеры
1.4.3. Функциональные объекты для арифметических и логических операций
Раздел 2. Использование библиотеки STL
2.1. Знакомство с итераторами и алгоритмами: STL1Iter17
2.1.1. Установка задачника, создание проекта-заготовки и знакомство с заданием
2.1.2. Выполнение задания
2.1.3. Другой вариант правильного решения
2.2. Работа с последовательными контейнерами: STL2Seq22
2.2.1. Создание проекта-заготовки и знакомство с заданием
2.2.2. Выполнение задания
2.3. Использование алгоритмов
2.3.1. Преобразование списка с использованием различных видов итераторов: STL3Alg35
2.3.2. Преобразование символьных строк: STL4Str27
2.4. Использование ассоциативных контейнеров и дополнительных видов функциональных объектов
2.4.1. Группировка данных с применением отображений: STL5Assoc20
2.4.2. Дополнительные виды функциональных объектов: STL6Func9
2.5. Применение различных средств стандартной библиотеки C++: STL7Mix4
2.5.1. Создание проекта-заготовки и знакомство с заданием. Дополнительные средства окна задачника, связанные с просмотром файловых данных
2.5.2. Выполнение задания
2.5.3. Другие варианты решения
Раздел 3. Учебные задачи
3.1. Знакомство с итераторами и алгоритмами
3.2. Последовательные контейнеры
3.2.1. Заполнение контейнеров и доступ к элементам. Обратные итераторы
3.2.2. Вставка элементов
3.2.3. Удаление элементов
3.3. Обобщенные алгоритмы
3.3.1. Алгоритмы поиска
3.3.2. Базовые модифицирующие алгоритмы. Итераторы вставки
3.3.3. Сортировка и слияние
3.3.4. Перестановки и работа с кучей
3.3.5. Численные алгоритмы
3.4. Строки как последовательные контейнеры
3.5. Ассоциативные контейнеры
3.5.1. Множества. Теоретико-множественные алгоритмы
3.5.2. Отображения. Группировка и объединение данных
3.6. Функциональные объекты: дополнительные возможности
3.7. Применение различных средств стандартной библиотеки C++
3.7.1. Избранные задачи из группы STL7Mix
3.7.2. Указания к задачам группы STL7Mix
Раздел 4. Приложение. Средства ввода-вывода, реализованные в задачнике Programming Taskbook
4.1. Поток ввода-вывода pt и связанные с ним итераторы
4.2. Вывод отладочной информации: функции Show и ShowLine
4.3. Вывод отладочной информации: вспомогательные функции
Литература
Отрывок из книги
В библиотеке STL используются пять основных видов итераторов:
Для каждого вида итераторов определен набор операций, причем двумя операциями, доступными для всех видов итераторов, являются операция инкремента ++, которая передвигает итератор p на следующий элемент последовательности (++p и p++), и операция разыменования *, возвращающая значение текущего элемента (*p и вариант p->m для доступа к члену m разыменованного объекта).
.....
Создает копию контейнера other (тип контейнера other должен совпадать с типом создаваемого контейнера). В стандарте С++11 добавлен вариант конструктора с параметром other, обеспечивающий перемещение элементов контейнера other, если контейнер other является ссылкой на r-значение (r-value reference; для описания подобной ссылки используется двойной символ &&)
Создает последовательный контейнер, содержащий n копий значения x. Для строк string обязательными являются оба параметра. В стандарте С++11 вариант с одним параметром оптимизирован таким образом, чтобы избежать создания ненужных копий объектов T.
.....