Автор: Аммерааль Л.
1999.
Книга посвящена стандартной библиотеке шаблонов (STL) - мощному инструменту повышения эффективности труда программистов, пишущих на C++. Умелое использование STL позволяет повысить надежность, переносимость и универсальность программ, а также снизить расходы на их разработку. В книге описана стандартизованная версия STL.
Дается введение в предмет, которое позволяет быстро освоить библиотеку шаблонов. Приведен исчерпывающий справочный материал, в том числе по новому классу STL, sтring.h. Изложение сопровождается многочисленными примерами небольших, но законченных программ, иллюстрирующих ключевые понятия STL. Особое внимание уделено разъяснению сложных понятий библиотеки шаблонов, например, функциональных объектов и адаптеров функций. Для удобства читателей все приведенные в книге программные примеры доступны также в электронном виде, в частности, на Web-узле издательства «ДМК». Книга предназначена как для профессиональных программистов и тех, кто углубленно изучает C++, так и для тех, кто только начинает осваивать этот язык программирования, без преувеличения самый популярный в мире.
Содержание
Предисловие. 7
1. STL для начинающих. 8
1.1. Шаблоны, пространства имен и тип bool. 8
1.2. Знакомство с STL. 14
1.3. Векторы, списки и двусторонние очереди. 20
1.4. Сортировка. 24
1.5. Алгоритм find. 29
1.6. Алгоритм сору и итератор вставки. 30
1.7. Алгоритм merge. 32
1.8. Типы, определенные пользователем. 34
1.9. Категории итераторов. 35
1.10. Алгоритмы replace и reverse. 41
1.11. Возвращаясь к алгоритму sort. 42
1.12. Введение в функциональные объекты. 43
1.13. Использование find_if, remove и removeif. 45
1.14. Класс auto_ptr. 49
2. Другие алгоритмы и контейнеры. 52
2.1. Алгоритм accumulate. 52
2.2. Алгоритм for_each. 54
2.3. Подсчет. 55
2.4. Функциональные объекты, определенные в STL. 57
2.5. Введение в ассоциативные контейнеры. 59
2.6. Множества и множества с дубликатами. 60
2.7. Словари и словари с дубликатами. 62
2.8. Пары и сравнения. 65
2.9. Снова словари. 67
2.10. Функции insert. 72
2.11. Удаление элементов словаря. 74
2.12. Более удобные строки. 74
3. Последовательные контейнеры. 81
3.1. Векторы и связанные с ними типы. 81
3.2. Функции capacity и reserve. 85
3.3. Обзор функций-членов класса vector. 88
3.4. Двусторонние очереди. 92
3.5. Списки. 94
3.6. Векторы векторов. 101
3.7. Как избавиться от явного выделения памяти. 103
4. Ассоциативные контейнеры.107
4.1. Введение.107
4.2. Функции-члены множеств.111
4.3. Объединение и пересечение множеств.117
4.4. Отличия множеств с дубликатами от просто множеств.119
4.5. Словари. 120
4.6. Словари с дубликатами. 124
4.7. Сводный указатель. 127
5. Адаптеры контейнеров. 131
5.1. Стеки. 131
5.2. Очереди. 134
5.3. Очереди с приоритетами. 135
6. Функциональные объекты и адаптеры. 138
6.2. Функциональные объекты. 138
6.2. Унарные предикаты и привязки. 142
6.3. Отрицатели. 143
6.4. Два полезных базовых класса STL. 145
6.5. Функциональные объекты и алгоритм transform. 147
6.6. Адаптеры итераторов. 150
7. Обобщенные алгоритмы. 155
7.1. Немодифицирующие последовательные алгоритмы. 156
7.1.1. Алгоритмы find, count, for_each, find_first_of и find_end. 156
7.1.2. Алгоритм adjacent_find. 158
7.1.3. Отличие. 160
7.1.4. Сравнение на равенство. 161
7.1.5. Поиск подпоследовательности. 162
7.2. Модифицирующие последовательные алгоритмы. 163
7.2.1. Преобразовать. 163
7.2.2. Копировать. 164
7.2.3. Переместить по кругу. 166
7.2.4. Обменять. 168
7.2.5. Заменить. 170
7.2.6. Удалить. 172
7.2.7. Заполнить. 172
7.2.8. Породить. 173
7.2.9. Убрать повторы. 175
7.2.10. Расположить в обратном порядке. 178
7.2.11. Перетасовать. 178
7.2.12. Разделить. 180
7.3. Алгоритмы, связанные с сортировкой. 181
7.3.1. «Меньше» и другие операции сравнения. 182
7.3.2. Сортировка. 182
7.3.3. Стабильная сортировка. 182
7.3.4. Частичная сортировка. 184
7.3.5. N-й элемент. 186
7.3.6. Двоичный поиск. 187
7.3.7. Объединение. 189
7.3.8. Операции над множествами для сортированных контейнеров. 191
7.3.9. Операции над пирамидами. 194
7.3.10. Минимум и максимум. 197
7.3.11. Лексикографическое сравнение. 199
7.3.12. Генераторы перестановок. 200
7.4. Обобщенные численные алгоритмы. 202
7.4.1. Накопление. 202
7.4.2. Скалярное произведение. 202
7.4.3. Частичная сумма. 204
7.4.4. Разность между смежными элементами. 205
7.5. Прикладная программа: метод наименьших квадратов. 206
8. Прикладная программа: очень большие числа. 211
8.1. Введение. 211
8.2. Реализация класса large. 215
8.3. Вычисление числа к. 229
Библиография. 235
Указатель идентификаторов и английских названий. 236
Предметный указатель.
Введение в функциональные объекты.
Существует другой способ решения задачи сортировки из предыдущего раздела. Хотя для такой простой задачи он и не нужен, обсуждаемые принципы являются важными для других более сложных случаев, поэтому не стоит пропускать этот раздел при чтении. Функциональным объектом называется класс, где определен оператор вызова, который записывается как operator(). От класса не требуется наличия каких-либо других членов.
Давайте начнем с очень простого примера. (Здесь и далее мы пишем iostream.h вместо iostream, поскольку в последнем случае VC5 также требует наличия строчки using namespace std, a BC5, напротив, не позволяет использовать эту строчку, если не включаются типичные заголовки STL, такие как vector.)
Купить книгу - STL для программистов на C++ - Аммерааль Л.
Купить книгу - STL для программистов на C++ - Аммерааль Л.
По кнопкам выше и ниже «Купить бумажную книгу» и по ссылке «Купить» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Купить и скачать электронную книгу» можно купить эту книгу в электронном виде в официальном интернет магазине «ЛитРес», и потом ее скачать на сайте Литреса.
По кнопке «Найти похожие материалы на других сайтах» можно найти похожие материалы на других сайтах.
On the buttons above and below you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Хештеги: #книга по программированию :: #C++ :: #самоучитель :: #Аммерааль
Смотрите также учебники, книги и учебные материалы:
- Объектно - ориентированное программирование в С++ - Лафоре Р.
- Объектно - ориентированный анализ и проектирование с примерами приложений на С++ - Гради Буч
- Обработка объектных баз данных в C++ - Программирование с использованием стандарта ODMG - Дэвид Джордан
- MS SQL server 2000 - Мамаев Е.
- Delphi FAQ
- Универсальный Dynamic HTML - Вильямсон Х.
- Java 2 - Наиболее полное руководство - Ноутон П., Шилдт Г.
- Java Game Programming For Dummies