STL для программистов на C++ - Аммерааль Л.


Название: STL для программистов на C++.

Автор: Аммерааль Л.

1999.

    Книга посвящена стандартной библиотеке шаблонов (STL) - мощному инструменту повышения эффективности труда программистов, пишущих на C++. Умелое использование STL позволяет повысить надежность, переносимость и универсальность программ, а также снизить расходы на их разработку. В книге описана стандартизованная версия STL.

STL для программистов на C++ - Аммерааль Л.


    Дается введение в предмет, которое позволяет быстро освоить библиотеку шаблонов. Приведен исчерпывающий справочный материал, в том числе по новому классу 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++ - Аммерааль Л. - fileskachat.com, быстрое и бесплатное скачивание.

Скачать




Скачать книгу - STL для программистов на C++ - Аммерааль Л. - depositfiles

Скачать книгу - STL для программистов на C++ - Аммерааль Л. - letitbit
Дата публикации:





Теги: :: :: ::


 


 


Книги, учебники, обучение по разделам




Не нашёл? Найди:





2016-12-02 23:02:37