Шрифт:
Глава 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
20.8. Адаптация нашего класса vector к библиотеке STL
20.9. Адаптация встроенных массивов к библиотеке STL
20.10. Обзор контейнеров
20.10.1. Категории итераторов
Глава 21 Алгоритмы и ассоциативные массивы
21.1. Алгоритмы стандартной библиотеки
21.2. Простейший алгоритм: find
21.2.1. Примеры использования обобщенных алгоритмов
21.3. Универсальный алгоритм поиска: find_if
21.4. Объекты-функции
21.4.1. Абстрактная точка зрения на функции-объекты
21.4.2. Предикаты на членах класса
21.5. Численные алгоритмы
21.5.1. Алгоритм accumulate
21.5.2. Обобщение алгоритма accumulate
21.5.3. Алгоритм inner_product
21.5.4. Обобщение алгоритма inner_product
21.6. Ассоциативные контейнеры
21.6.1. Ассоциативные массивы
21.6.2. Обзор ассоциативных массивов
21.6.3. Еще один пример ассоциативного массив
21.6.4. Алгоритм unordered_map
21.6.5. Множества
21.7. Копирование
21.7.1. Алгоритм copy
21.7.2. Итераторы потоков
21.7.3. Использование класса set для поддержания порядка
21.7.4. Алгоритм copy_if
21.8. Сортировка и поиск
Часть IV Дополнительные темы
Глава 22 Идеалы и история
22.1. История, идеалы и профессионализм
22.1.1. Цели и философия языка программирования
22.1.2. Идеалы программирования
22.1.2.1. Чего мы хотим?
22.1.2.2. Общие подходы
22.1.2.3. Непосредственное выражение идей
22.1.2.4. Уровень абстракции
22.1.2.5. Модульность
22.1.2.6. Логичность и минимализм
22.1.3. Стили и парадигмы
22.2. Обзор истории языков программирования
22.2.1. Первые языки программирования