C++ и STL. Справочное руководство

Дэвид Р. Мюссер, Жилмер Дж. Дердж, Атул Сейни

Написанная авторами, принимавшими участие в разработке и практическом применении STL, данная книга представляет собой полное справочное руководство по данной теме. Она включает небольшой учебный курс, подробное описание каждого элемента библиотеки и большое количество примеров.

В книге вы найдете подробное описание итераторов, обобщенных алгоритмов, контейнеров, функциональных объектов и т.д. Ряд нетривиальных приложений демонстрирует использование мощи и гибкости STL в повседневной работе программиста. Книга также разъясняет, как интегрировать STL с другими объектно-ориентированными методами программирования. Она будет вашим постоянным спутником и советчиком при работе над проектами любой степени сложности. Во втором издании отражены все самые последние изменения в STL на момент написания книги; в нем появились новые главы и приложения. Множество новых примеров иллюстрируют отдельные концепции и технологии; большие демонстрационные программы показывают, как использовать STL в реальной разработке приложений на языке программирования C++.

Издательство: Вильямс, 2010 г.

ISBN 978-5-8459-1665-5, 978-0-321-70212-8

Количество страниц: 432.

Содержание книги «C++ и STL. Справочное руководство»:

  • 27 Предисловие
  • 32 Предисловие к первому изданию
  • 33 Введение
    • 33 Изменения во втором издании
    • 34 Исторические сведения из предисловия к первому изданию
    • 35 Что было потом
    • 36 Благодарности из первого издания
    • 36 Благодарности ко второму изданию
  • 37 ЧАСТЬ I. ВВОДНЫЙ КУРС В STL
  • 39 Глава 1. Введение
    • 40 1.1. Для кого предназначена эта книга
    • 40 1.2. Что такое обобщенное программирование
    • 42 1.3. Обобщенное программирование и шаблоны C++
      • 42 1.3.1. Шаблоны классов
      • 44 1.3.2. Шаблоны функций
      • 45 1.3.3. Шаблоны функций-членов
      • 46 1.3.4. Явное указание аргументов шаблонов
      • 47 1.3.5. Параметры шаблона по умолчанию
      • 47 1.3.6. Частичная специализация
    • 47 1.4. Шаблоны и проблема «разбухания кода»
    • 48 1.5. Гарантии производительности STL
      • 48 1.5.1. O-обозначения и связанные определения
      • 49 1.5.2. Амортизированное время
      • 50 1.5.3. Ограничения O-обозначений
  • 51 Глава 2. Обзор компонентов STL
    • 51 2.1. Контейнеры
      • 51 2.1.1. Контейнеры последовательностей
      • 55 2.1.2. Отсортированные ассоциативные контейнеры
    • 56 2.2. Обобщенные алгоритмы
      • 56 2.2.1. Обобщенный алгоритм find
      • 59 2.2.2. Обобщенный алгоритм merge
    • 61 2.3. Итераторы
    • 64 2.4. Функциональные объекты
    • 67 2.5. Адаптеры
    • 70 2.6. Аллокаторы
  • 71 Глава 3. Отличие STL от других библиотек
    • 71 3.1. Расширяемость
    • 72 3.2. Взаимозаменяемость компонентов
    • 73 3.3. Совместимость алгоритмов и контейнеров
  • 75 Глава 4. Итераторы
    • 75 4.1. Входные итераторы
    • 77 4.2. Выходные итераторы
    • 78 4.3. Однонаправленные итераторы
    • 79 4.4. Двунаправленные итераторы
    • 80 4.5. Итераторы с произвольным доступом
    • 81 4.6. Иерархия итераторов STL: эффективная комбинация алгоритмов и контейнеров
    • 83 4.7. Итераторы вставки
    • 84 4.8. Еще раз о входе и выходе: потоковые итераторы
    • 86 4.9. Спецификация категорий итераторов, требуемых алгоритмами STL
    • 87 4.10. Разработка обобщенных алгоритмов
    • 88 4.11. Почему некоторые алгоритмы требуют более мощные итераторы
    • 89 4.12. Выбор правильного алгоритма
    • 89 4.13. Константные и изменяемые итераторы
    • 91 4.14. Категории итераторов, предоставляемые контейнерами STL
  • 93 Глава 5. Обобщенные алгоритмы
    • 93 5.1. Базовая организация алгоритмов в STL
      • 93 5.1.1. Версии «на месте» и копирующие версии
      • 95 5.1.2. Алгоритмы с функциональными параметрами
    • 96 5.2. Неизменяющие алгоритмы над последовательностями
      • 96 5.2.1. find
      • 97 5.2.2. adjacent_find
      • 98 5.2.3. count
      • 99 5.2.4. for_each
      • 100 5.2.5. mismatch и equal
      • 102 5.2.6. search
    • 104 5.3. Изменяющие алгоритмы над последовательностями
      • 104 5.3.1. copy и copy_backward
      • 105 5.3.2. fill
      • 106 5.3.3. generate
      • 107 5.3.4. partition
      • 109 5.3.5. random_shuffle
      • 110 5.3.6. remove
      • 111 5.3.7. replace
      • 111 5.3.8. reverse
      • 111 5.3.9. rotate
      • 112 5.3.10. swap
      • 113 5.3.11. swap_ranges
      • 114 5.3.12. transform
      • 114 5.3.13. unique
    • 116 5.4. Алгоритмы, связанные с сортировкой
      • 116 5.4.1. Отношения сравнения
      • 118 5.4.2. Неубывающее и невозрастающее упорядочения
      • 119 5.4.3. sort, stable_sort и partial_sort
      • 122 5.4.4. nth_element
      • 123 5.4.5. binary_search, lower_bound, upper_bound и equal_range
      • 125 5.4.6. merge
      • 126 5.4.7. Теоретико-множественные операции над отсортированными структурами
      • 127 5.4.8. Операции над пирамидами
      • 129 5.4.9. Минимум и максимум
      • 130 5.4.10. Лексикографическое сравнение
      • 130 5.4.11. Генераторы перестановок
    • 131 5.5. Обобщенные числовые алгоритмы
      • 131 5.5.1. accumulate
      • 132 5.5.2. partial_sum
      • 133 5.5.3. adjacent_difference
      • 134 5.5.4. inner_product
  • 137 Глава 6. Последовательные контейнеры
    • 138 6.1. Векторы
      • 138 6.1.1. Типы
      • 139 6.1.2. Конструирование последовательностей
      • 143 6.1.3. Вставка
      • 147 6.1.4. Удаление
      • 149 6.1.5. Функции доступа
      • 150 6.1.6. Отношения равенства и «меньше, чем»
      • 151 6.1.7. Присваивания
    • 152 6.2. Деки
      • 154 6.2.1. Типы
      • 154 6.2.2. Конструкторы
      • 154 6.2.3. Вставка
      • 155 6.2.4. Удаление
      • 155 6.2.5. Аксессоры
      • 155 6.2.6. Отношения равенства и «меньше, чем»
      • 155 6.2.7. Присваивания
    • 155 6.3. Списки
      • 157 6.3.1. Типы
      • 157 6.3.2. Конструкторы
      • 157 6.3.3. Вставка
      • 157 6.3.4. Удаление
      • 159 6.3.5. Склейка
      • 160 6.3.6. Функции-члены, связанные с сортировкой
      • 161 6.3.7. Удаление
      • 161 6.3.8. Аксессоры
      • 162 6.3.9. Отношения равенства и «меньше, чем»
      • 162 6.3.10. Присваивания
  • 163 Глава 7. Отсортированные ассоциативные контейнеры
    • 164 7.1. Множества и мультимножества
      • 164 7.1.1. Типы
      • 165 7.1.2. Конструкторы
      • 165 7.1.3. Вставка
      • 168 7.1.4. Удаление
      • 170 7.1.5. Аксессоры
      • 172 7.1.6. Отношения эквивалентности и «меньше, чем»
      • 173 7.1.7. Присваивание
    • 173 7.2. Отображения и мультиотображения
      • 174 7.2.1. Типы
      • 174 7.2.2. Конструкторы
      • 174 7.2.3. Вставка
      • 178 7.2.4. Удаление
      • 178 7.2.5. Аксессоры
      • 179 7.2.6. Отношения равенства и «меньше, чем»
      • 179 7.2.7. Присваивания
  • 181 Глава 8. Функциональные объекты
    • 181 8.1. Передача функций через указатели
    • 183 8.2. Преимущества передачи функциональных объектов как параметров шаблонов
    • 187 8.3. Функциональные объекты, предоставляемые STL
  • 189 Глава 9. Адаптеры контейнеров
    • 190 9.1. Адаптер стека
    • 191 9.2. Адаптер очереди
    • 193 9.3. Адаптер очереди с приоритетами
  • 197 Глава 10. Адаптеры итераторов
  • 201 Глава 11. Функциональные адаптеры
    • 201 11.1. Связыватели
    • 202 11.2. Инверторы
    • 203 11.3. Адаптеры для указателей на функции
  • 207 ЧАСТЬ II. ПРИМЕРЫ ПРОГРАММ
  • 209 Глава 12. Программа для поиска в словаре
    • 209 12.1. Поиск анаграмм данного слова
    • 211 12.2. Работа со строками и потоками
    • 213 12.3. Генерация перестановок и поиск в словаре
    • 213 12.4. Полная программа
    • 214 12.5. Насколько быстр разработанный код
  • 217 Глава 13. Программа поиска всех групп анаграмм
    • 217 13.1. Поиск групп анаграмм
    • 218 13.2. Определение структуры данных для работы с STL
    • 219 13.3. Создание функциональных объектов для сравнений
    • 220 13.4. Полная программа поиска групп анаграмм
    • 220 13.5. Чтение словаря в вектор объектов PS
    • 221 13.6. Использование объекта сравнения для сортировки
    • 221 13.7. Использование предиката эквивалентности для поиска равных элементов
    • 222 13.8. Использование функционального адаптера для получения объекта предиката
    • 222 13.9. Копирование группы анаграмм в выходной поток
    • 223 13.10. Вывод программы
  • 225 Глава 14. Улучшенная программа поиска групп анаграмм
    • 225 14.1. Структура данных для хранения пар итераторов
    • 226 14.2. Хранение информации в отображении списков
    • 226 14.3. Упорядоченный по размерам вывод групп анаграмм
    • 227 14.4. Улучшенная программа поиска анаграмм
    • 228 14.5. Вывод программы
    • 229 14.6. Причины использования отображения
  • 231 Глава 15. Ускорение программы поиска анаграмм: использование мультиотображений
    • 231 15.1. Поиск групп анаграмм, версия 3
    • 234 15.2. Объявление мультиотображения
    • 234 15.3. Чтение словаря в мультиотображение
    • 234 15.4. Поиск групп анаграмм в мультиотображении
    • 236 15.5. Упорядоченный по размерам вывод групп анаграмм
    • 236 15.6. Вывод программы
    • 236 15.7. Скорость работы программы
  • 237 Глава 16. Определение класса итератора
    • 237 16.1. Новый вид итератора: подсчитывающий итератор
    • 238 16.2. Класс подсчитывающего итератора
  • 243 Глава 17. STL и объектно-ориентированное программирование
    • 244 17.1. Использование наследования и виртуальных функций
    • 248 17.2. Устранение «разбухания кода»
  • 249 Глава 18. Программа вывода дерева ученых в области теории вычислительных машин и систем
    • 249 18.1. Сортировка аспирантов по датам
    • 250 18.2. Связь аспирантов с руководителями
    • 251 18.3. Поиск корней дерева
    • 254 18.4. Чтение файла
    • 255 18.5. Вывод результатов
    • 256 18.6. Полный исходный текст программы
  • 259 Глава 19. Класс для хронометража обобщенных алгоритмов
    • 259 19.1. Препятствия точному хронометражу алгоритмов
    • 260 19.2. Преодоление препятствий
    • 262 19.3. Уточнение метода
    • 263 19.4. Автоматизация анализа при помощи класса
      • 265 19.4.1. Вывод результатов
    • 267 19.5. Хронометраж алгоритмов сортировки STL
  • 271 ЧАСТЬ III. СПРАВОЧНОЕ РУКОВОДСТВО ПО STL
  • 273 Глава 20. Справочное руководство по итераторам
    • 274 20.1. Требования ко входным итераторам
    • 275 20.2. Требования к выходным итераторам
    • 276 20.3. Требования к однонаправленным итераторам
    • 277 20.4. Требования к двунаправленным итераторам
    • 277 20.5. Требования к итераторам с произвольным доступом
    • 278 20.6. Свойства итераторов
      • 279 20.6.1. Базовый класс iterator
      • 279 20.6.2. Стандартные дескрипторы итераторов
    • 280 20.7. Операции с итераторами
    • 280 20.8. istream_iterator
      • 281 20.8.1. Файлы
      • 281 20.8.2. Объявление класса
      • 281 20.8.3. Примеры
      • 281 20.8.4. Описание
      • 281 20.8.5. Определения типов
      • 281 20.8.6. Конструкторы
      • 282 20.8.7. Открытые функции-члены
      • 282 20.8.8. Операции сравнения
    • 282 20.9. ostream_iterator
      • 282 20.9.1. Файлы
      • 283 20.9.2. Объявление класса
      • 283 20.9.3. Примеры
      • 283 20.9.4. Описание
      • 283 20.9.5. Определения типов
      • 283 20.9.6. Конструкторы
      • 284 20.9.7. Открытые функции-члены
    • 284 20.10. reverse_iterator
      • 284 20.10.1. Файлы
      • 284 20.10.2. Объявление класса
      • 284 20.10.3. Примеры
      • 284 20.10.4. Описание
      • 285 20.10.5. Конструктор
      • 285 20.10.6. Открытые функции-члены
      • 286 20.10.7. Глобальные операции
      • 286 20.10.8. Предикаты равенства и упорядочения
    • 287 20.11. back_insert_iterator
      • 287 20.11.1. Файлы
      • 287 20.11.2. Объявление класса
      • 287 20.11.3. Примеры
      • 287 20.11.4. Описание
      • 287 20.11.5. Конструкторы
      • 287 20.11.6. Открытые функции-члены
      • 288 20.11.7. Сопутствующие шаблоны функций
    • 288 20.12. front_insert_iterator
      • 288 20.12.1. Файлы
      • 288 20.12.2. Объявление класса
      • 288 20.12.3. Конструкторы
      • 288 20.12.4. Открытые функции-члены
      • 289 20.12.5. Сопутствующие шаблоны функций
    • 289 20.13. insert_iterator
      • 289 20.13.1. Файлы
      • 289 20.13.2. Объявление класса
      • 289 20.13.3. Примеры
      • 289 20.13.4. Конструкторы
      • 289 20.13.5. Открытые функции-члены
      • 290 20.13.6. Сопутствующие шаблоны функций
  • 291 Глава 21. Справочное руководство по контейнерам
    • 291 21.1. Требования
      • 291 21.1.1. Дизайн и организация контейнеров STL
      • 292 21.1.2. Общие члены всех контейнеров
      • 294 21.1.3. Требования к обратимым контейнерам
      • 294 21.1.4. Требования к контейнерам последовательностей
      • 295 21.1.5. Требования к отсортированным ассоциативным контейнерам
    • 298 21.2. Описания организации классов контейнеров
      • 298 21.2.1. Файлы
      • 299 21.2.2. Объявление класса
      • 299 21.2.3. Примеры
      • 299 21.2.4. Описание
      • 299 21.2.5. Определения типов
      • 299 21.2.6. Конструкторы, деструкторы и связанные функции
      • 299 21.2.7. Операции сравнения
      • 299 21.2.8. Функции-члены для обращения к элементам
      • 299 21.2.9. Функции-члены для вставки
      • 299 21.2.10. Функции-члены для удаления
      • 299 21.2.11. Раздел(ы) дополнительных примечаний
    • 300 21.3. vector
      • 300 21.3.1. Файлы
      • 300 21.3.2. Объявление класса
      • 300 21.3.3. Примеры
      • 300 21.3.4. Описание
      • 301 21.3.5. Определения типов
      • 301 21.3.6. Конструкторы, деструкторы и связанные функции вектора
      • 303 21.3.7. Операции сравнения
      • 303 21.3.8. Функции-члены вектора для обращения к элементам
      • 304 21.3.9. Функции-члены вектора для вставки
      • 304 21.3.10. Функции-члены вектора для удаления
      • 305 21.3.11. Замечания о функциях-членах вставки и удаления
    • 305 21.4. deque
      • 305 21.4.1. Файлы
      • 305 21.4.2. Объявление класса
      • 306 21.4.3. Примеры
      • 306 21.4.4. Описание
      • 306 21.4.5. Определения типов
      • 306 21.4.6. Конструкторы, деструкторы и связанные функции дека
      • 307 21.4.7. Операции сравнения
      • 307 21.4.8. Функции-члены дека для обращения к элементам
      • 308 21.4.9. Функции-члены дека для вставки
      • 308 21.4.10. Функции-члены дека для удаления
      • 309 21.4.11. Сложность вставки в дек
      • 309 21.4.12. Замечания о функциях-членах удаления
    • 309 21.5. list
      • 309 21.5.1. Файлы
      • 309 21.5.2. Объявление класса
      • 309 21.5.3. Примеры
      • 310 21.5.4. Описание
      • 310 21.5.5. Определения типов
      • 311 21.5.6. Конструкторы, деструкторы и связанные функции списка
      • 311 21.5.7. Операции сравнения
      • 312 21.5.8. Функции-члены списка для обращения к элементам
      • 313 21.5.9. Функции-члены списка для вставки
      • 313 21.5.10. Функции-члены списка для удаления
      • 313 21.5.11. Специальные операции со списками
      • 315 21.5.12. Замечания о функциях-членах вставки
      • 315 21.5.13. Замечания о функциях-членах удаления
    • 315 21.6. set
      • 315 21.6.1. Файлы
      • 316 21.6.2. Объявление класса
      • 316 21.6.3. Примеры
      • 316 21.6.4. Описание
      • 316 21.6.5. Определения типов
      • 317 21.6.6. Конструкторы, деструкторы и связанные функции множества
      • 317 21.6.7. Операции сравнения
      • 318 21.6.8. Функции-члены множества для обращения к элементам
      • 319 21.6.9. Функции-члены множества для вставки
      • 319 21.6.10. Функции-члены множества для удаления
      • 320 21.6.11. Специализированные операции множества
    • 320 21.7. multiset
      • 320 21.7.1. Файлы
      • 320 21.7.2. Объявление класса
      • 320 21.7.3. Примеры
      • 321 21.7.4. Описание
      • 321 21.7.5. Определения типов
      • 321 21.7.6. Конструкторы, деструкторы и связанные функции мультимножества
      • 322 21.7.7. Операции сравнения
      • 322 21.7.8. Функции-члены мультимножества для обращения к элементам
      • 323 21.7.9. Функции-члены мультимножества для вставки
      • 323 21.7.10. Функции-члены мультимножества для удаления
      • 324 21.7.11. Специализированные операции мультимножества
    • 324 21.8. map
      • 324 21.8.1. Файлы
      • 324 21.8.2. Объявление класса
      • 325 21.8.3. Примеры
      • 325 21.8.4. Описание
      • 325 21.8.5. Определения типов
      • 326 21.8.6. Конструкторы, деструкторы и связанные функции отображения
      • 326 21.8.7. Операции сравнения
      • 327 21.8.8. Функции-члены отображения для обращения к элементам
      • 328 21.8.9. Функции-члены отображения для вставки
      • 328 21.8.10. Функции-члены отображения для удаления
      • 329 21.8.11. Специализированные операции отображения
    • 330 21.9. multimap
      • 330 21.9.1. Файлы
      • 330 21.9.2. Объявление класса
      • 330 21.9.3. Примеры
      • 330 21.9.4. Описание
      • 330 21.9.5. Определения типов
      • 330 21.9.6. Конструкторы, деструкторы и связанные функции мультиотображения
      • 331 21.9.7. Операции сравнения
      • 331 21.9.8. Функции-члены мультиотображения для обращения к элементам
      • 332 21.9.9. Функции-члены мультиотображения для вставки
      • 333 21.9.10. Функции-члены мультиотображения для удаления
      • 333 21.9.11. Специализированные операции мультиотображения
    • 334 21.10. Адаптер контейнера stack
      • 334 21.10.1. Файлы
      • 334 21.10.2. Объявление класса
      • 334 21.10.3. Примеры
      • 334 21.10.4. Описание
      • 335 21.10.5. Определения типов
      • 335 21.10.6. Конструкторы
      • 335 21.10.7. Открытые функции-члены
      • 335 21.10.8. Операции сравнения
    • 336 21.11. Адаптер контейнера queue
      • 336 21.11.1. Файлы
      • 336 21.11.2. Объявление класса
      • 336 21.11.3. Примеры
      • 336 21.11.4. Описание
      • 336 21.11.5. Определения типов
      • 336 21.11.6. Конструкторы
      • 337 21.11.7. Открытые функции-члены
      • 337 21.11.8. Операции сравнения
    • 337 21.12. Адаптер контейнера priority_queue
      • 337 21.12.1. Файлы
      • 337 21.12.2. Объявление класса
      • 337 21.12.3. Примеры
      • 338 21.12.4. Описание
      • 338 21.12.5. Определения типов
      • 338 21.12.6. Конструкторы
      • 339 21.12.7. Открытые функции-члены
      • 339 21.12.8. Операторы сравнения
  • 341 Глава 22. Справочное руководство по обобщенным алгоритмам
    • 341 22.1. Организация описаний алгоритмов
      • 341 22.1.1. Прототипы
      • 342 22.1.2. Примеры
      • 342 22.1.3. Описание
      • 342 22.1.4. Временная сложность
    • 342 22.2. Неизменяющие алгоритмы над последовательностями
    • 343 22.3. for_each
      • 343 22.3.1. Прототип
      • 343 22.3.2. Примеры
      • 343 22.3.3. Описание
      • 344 22.3.4. Временная сложность
    • 344 22.4. find
      • 344 22.4.1. Прототипы
      • 344 22.4.2. Примеры
      • 344 22.4.3. Описание
      • 344 22.4.4. Временная сложность
    • 344 22.5. find_first_of
      • 344 22.5.1. Прототипы
      • 345 22.5.2. Описание
      • 345 22.5.3. Временная сложность
    • 345 22.6. adjacent_find
      • 345 22.6.1. Прототипы
      • 345 22.6.2. Примеры
      • 345 22.6.3. Описание
      • 345 22.6.4. Временная сложность
    • 346 22.7. count
      • 346 22.7.1. Прототипы
      • 346 22.7.2. Примеры
      • 346 22.7.3. Описание
      • 346 22.7.4. Временная сложность
    • 346 22.8. mismatch
      • 346 22.8.1. Прототипы
      • 346 22.8.2. Примеры
      • 347 22.8.3. Описание
      • 347 22.8.4. Временная сложность
    • 347 22.9. equal
      • 347 22.9.1. Прототипы
      • 347 22.9.2. Примеры
      • 347 22.9.3. Описание
      • 348 22.9.4. Временная сложность
    • 348 22.10. search
      • 348 22.10.1. Прототипы
      • 348 22.10.2. Примеры
      • 348 22.10.3. Описание
      • 348 22.10.4. Временная сложность
    • 349 22.11. search_n
      • 349 22.11.1. Прототипы
      • 349 22.11.2. Описание
      • 349 22.11.3. Временная сложность
    • 349 22.12. find_end
      • 349 22.12.1. Прототипы
      • 350 22.12.2. Описание
      • 350 22.12.3. Временная сложность
    • 350 22.13. Обзор изменяющих алгоритмов над последовательностями
    • 351 22.14. copy
      • 351 22.14.1. Прототипы
      • 351 22.14.2. Примеры
      • 351 22.14.3. Описание
      • 351 22.14.4. Временная сложность
    • 351 22.15. swap
      • 351 22.15.1. Прототипы
      • 352 22.15.2. Примеры
      • 352 22.15.3. Описание
      • 352 22.15.4. Временная сложность
    • 352 22.16. transform
      • 352 22.16.1. Прототипы
      • 352 22.16.2. Примеры
      • 353 22.16.3. Описание
      • 353 22.16.4. Временная сложность
    • 353 22.17. replace
      • 353 22.17.1. Прототипы
      • 353 22.17.2. Примеры
      • 354 22.17.3. Описание
      • 354 22.17.4. Временная сложность
    • 354 22.18. fill
      • 354 22.18.1. Прототипы
      • 354 22.18.2. Примеры
      • 354 22.18.3. Описание
      • 354 22.18.4. Временная сложность
    • 354 22.19. generate
      • 354 22.19.1. Прототипы
      • 355 22.19.2. Примеры
      • 355 22.19.3. Описание
      • 355 22.19.4. Временная сложность
    • 355 22.20. remove
      • 355 22.20.1. Прототипы
      • 355 22.20.2. Примеры
      • 356 22.20.3. Описание
      • 356 22.20.4. Временная сложность
    • 356 22.21. unique
      • 356 22.21.1. Прототипы
      • 356 22.21.2. Примеры
      • 357 22.21.3. Описание
      • 357 22.21.4. Временная сложность
    • 357 22.22. reverse
      • 357 22.22.1. Прототипы
      • 357 22.22.2. Примеры
      • 357 22.22.3. Описание
      • 358 22.22.4. Временная сложность
    • 358 22.23. rotate
      • 358 22.23.1. Прототипы
      • 358 22.23.2. Примеры
      • 358 22.23.3. Описание
      • 358 22.23.4. Временная сложность
    • 358 22.24. random_shuffle
      • 358 22.24.1. Прототипы
      • 359 22.24.2. Примеры
      • 359 22.24.3. Описание
      • 359 22.24.4. Временная сложность
    • 359 22.25. partition
      • 359 22.25.1. Прототипы
      • 359 22.25.2. Примеры
      • 359 22.25.3. Описание
      • 360 22.25.4. Временная сложность
    • 360 22.26. Обзор алгоритмов, связанных с сортировкой
    • 361 22.27. sort
      • 361 22.27.1. Прототипы
      • 362 22.27.2. Примеры
      • 362 22.27.3. Описание
      • 363 22.27.4. Временная сложность
    • 363 22.28. nth_element
      • 363 22.28.1. Прототипы
      • 363 22.28.2. Примеры
      • 363 22.28.3. Описание
      • 364 22.28.4. Временная сложность
    • 364 22.29. Бинарный поиск
      • 364 22.29.1. Прототипы
      • 365 22.29.2. Примеры
      • 365 22.29.3. Описание
      • 365 22.29.4. Временная сложность
    • 365 22.30. merge
      • 365 22.30.1. Прототипы
      • 366 22.30.2. Примеры
      • 366 22.30.3. Описание
      • 366 22.30.4. Временная сложность
    • 366 22.31. Теоретико-множественные операции над отсортированными структурами
      • 367 22.31.1. Прототипы
      • 368 22.31.2. Примеры
      • 368 22.31.3. Описание
      • 368 22.31.4. Временная сложность
    • 369 22.32. Операции с пирамидами
      • 369 22.32.1. Прототипы
      • 370 22.32.2. Примеры
      • 370 22.32.3. Описание
      • 370 22.32.4. Временная сложность
    • 370 22.33. min и max
      • 370 22.33.1. Прототипы
      • 371 22.33.2. Примеры
      • 371 22.33.3. Описание
      • 371 22.33.4. Временная сложность
    • 371 22.34. Лексикографическое сравнение
      • 371 22.34.1. Прототипы
      • 371 22.34.2. Примеры
      • 372 22.34.3. Описание
      • 372 22.34.4. Временная сложность
    • 372 22.35. Генераторы перестановок
      • 372 22.35.1. Прототипы
      • 372 22.35.2. Примеры
      • 373 22.35.3. Описание
      • 373 22.35.4. Временная сложность
    • 373 22.36. Обзор обобщенных численных алгоритмов
    • 373 22.37. accumulate
      • 373 22.37.1. Прототипы
      • 374 22.37.2. Примеры
      • 374 22.37.3. Описание
      • 374 22.37.4. Временная сложность
    • 374 22.38. inner_product
      • 374 22.38.1. Прототипы
      • 374 22.38.2. Примеры
      • 374 22.38.3. Описание
      • 375 22.38.4. Временная сложность
    • 375 22.39. partial_sum
      • 375 22.39.1. Прототипы
      • 375 22.39.2. Примеры
      • 375 22.39.3. Описание
      • 376 22.39.4. Временная сложность
    • 376 22.40. adjacent_difference
      • 376 22.40.1. Прототипы
      • 376 22.40.2. Примеры
      • 376 22.40.3. Описание
      • 376 22.40.4. Временная сложность
  • 377 Глава 23. Справочное руководство по функциональным объектам и адаптерам
    • 377 23.1. Требования
      • 377 23.1.1. Функциональные объекты
      • 377 23.1.2. Функциональные адаптеры
    • 378 23.2. Базовые классы
    • 378 23.3. Арифметические операции
    • 379 23.4. Операции сравнения
    • 379 23.5. Логические операции
    • 380 23.6. Инверторы
    • 380 23.7. Связыватели
    • 381 23.8. Адаптеры для указателей на функции
    • 381 23.9. Адаптеры для указателей на функции-члены
  • 385 Глава 24. Справочное руководство по аллокаторам
    • 385 24.1. Введение
      • 385 24.1.1. Передача аллокаторов контейнерам STL
    • 385 24.2. Требования к аллокаторам
    • 388 24.3. Аллокатор по умолчанию
      • 388 24.3.1. Файлы
      • 388 24.3.2. Объявление класса
      • 388 24.3.3. Описание
      • 388 24.3.4. Определения типов
      • 388 24.3.5. Конструкторы, деструкторы и связанные функции
      • 389 24.3.6. Другие функции-члены
      • 389 24.3.7. Операции сравнения
      • 390 24.3.8. Специализация для void
    • 390 24.4. Пользовательские аллокаторы
  • 395 Глава 25. Справочное руководство по утилитам
    • 395 25.1. Введение
    • 395 25.2. Функции сравнения
    • 396 25.3. pair
      • 396 25.3.1. Файлы
      • 396 25.3.2. Объявление класса
      • 396 25.3.3. Примеры
      • 396 25.3.4. Описание
      • 396 25.3.5. Определения типов
      • 396 25.3.6. Члены-данные
      • 396 25.3.7. Конструкторы
      • 397 25.3.8. Функции сравнения
  • 399 Приложение А. Заголовочные файлы STL
  • 401 Приложение Б. Справочное руководство по строкам
    • 401 Б.1. Классы строк
      • 401 Б.1.1. Файлы
      • 401 Б.1.2. Объявление класса
      • 401 B.1.3. Описание
      • 402 Б.1.4. Определения типов
      • 403 Б.1.5. Конструкторы, деструкторы и связанные функции
      • 405 Б.1.6. Операции сравнения
      • 407 Б.1.7. Функции-члены для доступа к элементам
      • 408 Б.1.8. Функции-члены для вставки
      • 408 Б.1.9. Функции-члены для удаления
      • 409 Б.1.10. Дополнительные примечания
    • 409 Б.2. Свойства символов
      • 409 Б.2.1. Файлы
      • 409 Б.2.2. Описание
      • 409 Б.2.3. Определения типов
      • 410 Б.2.4. Функции для работы с символами
  • 413 Приложение В. Заголовочные файлы, используемые в примерах программ
    • 413 В.1. Файлы, используемые в примере 17.1
  • 419 Приложение Г. Ресурсы
    • 419 Г.1. Адрес реализации SGI STL
    • 419 Г.2. Адрес для получения исходных текстов данной книги
    • 419 Г.3. Использованные компиляторы
  • 420 Список литературы
  • 422 Предметный указатель

Инструкция как скачать книгу Дэвид Р. Мюссер, Жилмер Дж. Дердж, Атул Сейни: C++ и STL. Справочное руководство в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
C++ и STL. Справочное руководство
Рейтинг книги:
0 голосов
1547

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: