Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
17.8. Путаница с типами: void* и операторы приведения типов
17.9. Указатели и ссылки
17.9.1. Указатели и ссылки как параметры функций
17.9.2. Указатели, ссылки и наследование
17.9.3. Пример: списки
17.9.4. Операции над списками
17.9.5. Использование списков
17.10.
17.10.1. Еще раз об использовании списков
Глава 18 Векторы и массивы
18.1. Введение
18.2. Копирование
18.2.1. Конструкторы копирования
18.2.2. Копирующее присваивание
18.2.3. Терминология, связанная с копированием
18.3. Основные операции
18.3.1. Явные конструкторы
18.3.2. Отладка конструкторов и деструкторов
18.4. Доступ к элементам вектора
18.4.1. Перегрузка ключевого слова const
18.5. Массивы
18.5.1. Указатели на элементы массива
18.5.2. Указатели и массивы
18.5.3. Инициализация массива
18.5.4. Проблемы с указателями
18.6. Примеры: палиндром
18.6.1. Палиндромы, созданные с помощью класса string
18.6.2. Палиндромы, созданные с помощью массива
18.6.3. Палиндромы, созданные с помощью указателей
Глава 19 Векторы, шаблоны и исключения
19.1. Проблемы
19.2. Изменение размера
19.2.1. Представление
19.2.2. Функции reserve и capacity
19.2.3. Функция resize
19.2.4. Функция push_back
19.2.5. Присваивание
19.2.6. Предыдущая версия класса vector
19.3. Шаблоны
19.3.1. Типы как шаблонные параметры
19.3.2. Обобщенное программирование
19.3.3. Контейнеры и наследование
19.3.4. Целые типы как шаблонные параметры
19.3.5. Вывод шаблонных аргументов
19.3.6. Обобщение класса vector
19.4. Проверка диапазона и исключения
19.4.1. Примечание: вопросы проектирования
19.4.1.1. Совместимость
19.4.1.2. Эффективность
19.4.1.3. Ограничения
19.4.1.4. Необязательная проверка
19.4.2. Признание: макрос
19.5. Ресурсы и исключения
19.5.1. Потенциальные проблемы управления ресурсами
19.5.2. Получение ресурсов — это инициализация
19.5.3. Гарантии
19.5.4. Класс auto_ptr
19.5.5. Принцип RAII для класса vector
Глава 20 Контейнеры и итераторы
20.1. Хранение и обработка данных
20.1.1. Работа с данными
20.1.2. Обобщение кода
20.2. Принципы библиотеки STL
20.3. Последовательности и итераторы
20.3.1. Вернемся к примерам
20.4. Связанные списки
20.4.1. Операции над списками
20.4.2. Итерация
20.5. Еще одно обобщение класса vector
20.6. Пример: простой текстовый редактор
20.6.1. Строки
20.6.2. Итерация
20.7. Классы vector, list и string
20.7.1. Операции insert и erase