C++. Методики программирования Шилдта

Герберт Шилдт

Легендарный автор книг по программированию, Герберт Шилдт, предлагает некоторые из своих избранных подходов и приемов, оформленные в виде «книги рецептов». Организованный в виде справочника, каждый рецепт показывает, как решить конкретную практическую задачу. Рецепты начинаются со списка ключевых ингредиентов (классов, функций и заголовков), за которыми следуют пошаговые инструкции, описывающие процесс сборки завершенного решения. В подробных обсуждениях излагаются причины и сущность каждого шага, а пример полного кода рецепта позволяет проверить решение на практике. Каждый рецепт завершается списком вариантов и альтернатив, где предлагаются способы адаптации приема к разнообразным ситуациям. Начинающий вы или опытный программист, рассматриваемые в книге рецепты утолят любые аппетиты в программировании на C++.

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

ISBN 978-5-8459-1494-1, 978-0-07-148860-0

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

Содержание книги «C++. Методики программирования Шилдта»:

  • 17 Об авторе
  • 17 О техническом редакторе
  • 18 Предисловие
    • 19 Коды примеров
    • 19 Другие книги автора
    • 20 От издательства
  • 21 Глава 1. Обзор
    • 21 Что внутри
    • 23 Как организованы рецепты
    • 23 Несколько предостережений
    • 24 Необходимый опыт работы с C++
    • 24 Версия C++
    • 24 Соглашения о кодировании
  • 26 Глава 2. Обработка строк
    • 27 Обзор строк, завершающихся нулем
    • 30 Обзор класса string
      • 35 Исключения, связанные с объектами string
    • 36 Выполнение базовых операций со строками, завершающимися нулем
      • 36 Необходимые шаги
      • 36 Обсуждение
      • 37 Пример
      • 39 Варианты и альтернативы
    • 40 Поиск в строке, завершающейся нулем
      • 40 Необходимые шаги
      • 40 Обсуждение
      • 41 Пример
      • 41 Варианты и альтернативы
    • 42 Обращение (реверс) строки, завершающейся нулем
      • 42 Необходимые шаги
      • 43 Обсуждение
      • 43 Пример
      • 44 Варианты и альтернативы
    • 46 Игнорирование различий в регистре при сравнении завершающихся нулем строк
      • 46 Необходимые шаги
      • 47 Обсуждение
      • 48 Пример
      • 49 Варианты и альтернативы
    • 50 Создание функции поиска и замены для завершающихся нулем строк
      • 50 Необходимые шаги
      • 51 Обсуждение
      • 52 Пример
      • 54 Варианты и альтернативы
    • 57 Категоризация символов внутри строки, завершающейся нулем
      • 57 Необходимые шаги
      • 58 Обсуждение
      • 58 Пример
      • 59 Дополнительный пример: подсчет слов
      • 61 Варианты и альтернативы
    • 61 Разбиение на лексемы строки, завершающейся нулем
      • 62 Необходимые шаги
      • 62 Обсуждение
      • 63 Пример
      • 65 Варианты и альтернативы
    • 68 Выполнение базовых операций над объектами string
      • 69 Необходимые шаги
      • 70 Обсуждение
      • 72 Пример
      • 75 Варианты и альтернативы
    • 76 Поиск в объекте string
      • 77 Необходимые шаги
      • 77 Обсуждение
      • 78 Пример
      • 80 Дополнительный пример: класс tokenizer для объектов string
      • 82 Варианты и альтернативы
    • 83 Создание функции поиска и замены для объектов string
      • 83 Необходимые шаги
      • 83 Обсуждение
      • 84 Пример
      • 85 Варианты и альтернативы
    • 86 Работа с объектами string посредством итераторов
      • 87 Необходимые шаги
      • 88 Обсуждение
      • 90 Пример
      • 92 Варианты и альтернативы
    • 92 Создание независимых от регистра функций поиска и поиска с заменой для объектов string
      • 93 Необходимые шаги
      • 94 Обсуждение
      • 94 Пример
      • 97 Варианты и альтернативы
    • 98 Преобразование объекта string в строку, завершающуюся нулем
      • 99 Необходимые шаги
      • 99 Обсуждение
      • 99 Пример
      • 101 Варианты и альтернативы
    • 101 Реализация вычитания для объектов string
      • 102 Необходимые шаги
      • 102 Обсуждение
      • 103 Пример
      • 105 Варианты и альтернативы
  • 107 Глава 3. Работа с контейнерами STL
    • 108 Обзор STL
      • 108 Контейнеры
      • 108 Алгоритмы
      • 108 Итераторы
      • 110 Аллокаторы
      • 110 Функциональные объекты
      • 110 Адаптеры
      • 110 Предикаты
      • 110 Привязки и отрицатели
    • 111 Контейнерные классы
      • 112 Общая функциональность
    • 116 Проблемы производительности
    • 117 Базовые приемы использования последовательных контейнеров
      • 118 Необходимые шаги
      • 118 Обсуждение
      • 120 Пример
      • 124 Варианты и альтернативы
    • 125 Использование vector
      • 125 Необходимые шаги
      • 126 Обсуждение
      • 129 Пример
      • 131 Варианты и альтернативы
    • 132 Использование deque
      • 133 Необходимые шаги
      • 133 Обсуждение
      • 134 Пример
      • 137 Варианты и альтернативы
    • 138 Использование list
      • 138 Необходимые шаги
      • 139 Обсуждение
      • 141 Пример
      • 143 Варианты и альтернативы
    • 145 Использование адаптеров последовательных контейнеров: stack, queue и priority_queue
      • 145 Необходимые шаги
      • 146 Обсуждение
      • 148 Примеры
      • 150 Дополнительный пример: использование stack для создания калькулятора на четыре действия
      • 152 Варианты и альтернативы
    • 153 Хранение в контейнере определяемых пользователем объектов
      • 153 Необходимые шаги
      • 153 Обсуждение
      • 154 Пример
      • 156 Варианты и альтернативы
    • 156 Базовые приемы использования ассоциативных контейнеров
      • 158 Необходимые шаги
      • 158 Обсуждение
      • 162 Пример
      • 166 Варианты и альтернативы
    • 168 Использование map
      • 168 Необходимые шаги
      • 168 Обсуждение
      • 171 Пример
      • 173 Варианты и альтернативы
    • 174 Использование multimap
      • 174 Необходимые шаги
      • 175 Обсуждение
      • 177 Пример
      • 178 Варианты и альтернативы
    • 180 Использование set и multiset
      • 181 Необходимые шаги
      • 181 Обсуждение
      • 183 Пример
      • 185 Дополнительный пример: использование multiset для хранения объектов с дублированными ключами
      • 188 Варианты и альтернативы
  • 189 Глава 4. Алгоритмы, функциональные объекты и другие компоненты STL
    • 190 Обзор алгоритмов
      • 190 Зачем нужны алгоритмы?
      • 191 Алгоритмы — это шаблонные функции
      • 191 Категории алгоритмов
      • 195 Обзор функциональных объектов
    • 196 Обзор привязчиков и отрицателей
    • 197 Сортировка контейнера
      • 197 Необходимые шаги
      • 197 Обсуждение
      • 198 Пример
      • 199 Варианты и альтернативы
    • 200 Нахождение элемента в контейнере
      • 200 Необходимые шаги
      • 201 Обсуждение
      • 201 Пример
      • 203 Дополнительный пример: извлечение предложений из вектора символов
      • 204 Варианты и альтернативы
    • 206 Использование search() для нахождения соответствующей последовательности
      • 207 Необходимые шаги
      • 207 Обсуждение
      • 207 Пример
      • 209 Варианты и альтернативы
    • 210 Реверс, вращение и перемешивание последовательности
      • 210 Необходимые шаги
      • 210 Обсуждение
      • 211 Пример
      • 212 Дополнительный пример: использование обратных итераторов для выполнения поворота вправо
      • 213 Варианты и альтернативы
    • 214 Цикл по контейнеру с помощью for_each()
      • 214 Необходимые шаги
      • 215 Обсуждение
      • 215 Пример
      • 216 Варианты и альтернативы
    • 217 Использование transform() для изменения последовательности
      • 217 Необходимые шаги
      • 218 Обсуждение
      • 218 Пример
      • 220 Варианты и альтернативы
    • 222 Выполнение операций с множествами
      • 223 Необходимые шаги
      • 223 Обсуждение
      • 225 Пример
      • 226 Варианты и альтернативы
    • 227 Изменение порядка последовательности
      • 227 Необходимые шаги
      • 228 Обсуждение
      • 228 Пример
      • 229 Варианты и альтернативы
    • 230 Изменение порядка последовательности
      • 230 Необходимые шаги
      • 230 Обсуждение
      • 231 Пример
      • 232 Варианты и альтернативы
    • 232 Замена и удаление элементов контейнера
      • 232 Необходимые шаги
      • 233 Обсуждение
      • 233 Пример
      • 234 Варианты и альтернативы
    • 235 Слияние двух сортированных последовательностей
      • 236 Необходимые шаги
      • 236 Обсуждение
      • 237 Пример
      • 238 Варианты и альтернативы
    • 239 Создание и управление кучей
      • 239 Необходимые шаги
      • 239 Обсуждение
      • 240 Пример
      • 241 Варианты и альтернативы
    • 242 Создание алгоритма
      • 242 Необходимые шаги
      • 242 Обсуждение
      • 243 Пример
      • 245 Дополнительный пример: использование предиката со специальным алгоритмом
      • 247 Варианты и альтернативы
    • 248 Использование встроенного функционального объекта
      • 248 Необходимые шаги
      • 249 Пример
      • 251 Варианты и альтернативы
    • 251 Создание специального функционального объекта
      • 252 Необходимые шаги
      • 252 Обсуждение
      • 253 Пример
      • 255 Дополнительный пример: использование функционального объекта для поддержки информации о состоянии
      • 257 Варианты и альтернативы
    • 258 Использование привязчика
      • 258 Необходимые шаги
      • 259 Обсуждение
      • 259 Пример
      • 261 Варианты и альтернативы
    • 261 Использование отрицателя
      • 262 Необходимые шаги
      • 262 Обсуждение
      • 262 Пример
      • 263 Варианты и альтернативы
    • 264 Использование адаптера указателя на функцию
      • 264 Необходимые шаги
      • 264 Обсуждение
      • 265 Пример
      • 266 Варианты и альтернативы
    • 267 Использование потоковых итераторов
      • 267 Необходимые шаги
      • 268 Обсуждение
      • 271 Пример
      • 273 Дополнительный пример: создание файлового фильтра на базе STL
      • 274 Варианты и альтернативы
    • 275 Использование адаптеров итераторов вставки
      • 275 Необходимые шаги
      • 276 Обсуждение
      • 276 Пример
      • 278 Варианты и альтернативы
  • 279 Глава 5. Работа с функциями ввода-вывода
    • 280 Обзор ввода-вывода
      • 280 Потоки C++
      • 281 Классы потоков C++
      • 286 Специализации потоковых классов
      • 287 Предопределенные потоки C++
      • 288 Флаги формата
      • 288 Манипуляторы ввода-вывода
    • 288 Проверка ошибок
    • 290 Открытие и закрытие файла
    • 293 Запись форматированных данных в текстовый файл
      • 294 Необходимые шаги
      • 294 Обсуждение
      • 295 Пример
      • 296 Варианты и альтернативы
    • 297 Чтение форматированных данных из текстового файла
      • 297 Необходимые шаги
      • 297 Обсуждение
      • 299 Пример
      • 300 Варианты и альтернативы
    • 301 Запись неформатированных двоичных данных в файл
      • 301 Необходимые шаги
      • 301 Обсуждение
      • 303 Пример
      • 304 Варианты и альтернативы
    • 305 Чтение неформатированных двоичных данных из файла
      • 306 Необходимые шаги
      • 306 Обсуждение
      • 307 Пример
      • 308 Варианты и альтернативы
    • 310 Использование get() и getline() для чтения из файла
      • 310 Необходимые шаги
      • 310 Обсуждение
      • 311 Пример
      • 313 Варианты и альтернативы
    • 314 Чтение и запись в файл
      • 314 Необходимые шаги
      • 314 Обсуждение
      • 316 Пример
      • 317 Варианты и альтернативы
    • 317 Обнаружение EOF
      • 317 Необходимые шаги
      • 317 Обсуждение
      • 318 Пример
      • 319 Дополнительный пример: простая утилита сравнения файлов
      • 321 Варианты и альтернативы
    • 321 Использование исключений для обнаружения и обработки ошибок ввода-вывода
      • 321 Необходимые шаги
      • 322 Обсуждение
      • 322 Пример
      • 324 Варианты и альтернативы
    • 324 Использование файлового ввода-вывода произвольного доступа
      • 325 Необходимые шаги
      • 325 Обсуждение
      • 326 Пример
      • 327 Дополнительный пример: использование ввода-вывода с произвольным доступом для обращения к записям фиксированной длины
      • 329 Варианты и альтернативы
    • 330 Опережающее чтение файла
      • 330 Необходимые шаги
      • 330 Обсуждение
      • 331 Пример
      • 333 Варианты и альтернативы
    • 334 Использование строковых потоков
      • 334 Необходимые шаги
      • 334 Обсуждение
      • 335 Пример
      • 337 Варианты и альтернативы
    • 337 Создание специальных вставщиков и экстракторов
      • 338 Необходимые шаги
      • 338 Обсуждение
      • 339 Пример
      • 340 Варианты и альтернативы
    • 340 Создание манипулятора без параметров
      • 341 Необходимые шаги
      • 341 Обсуждение
      • 342 Пример
      • 343 Варианты и альтернативы
    • 343 Создание параметризованного манипулятора
      • 344 Необходимые шаги
      • 345 Обсуждение
      • 346 Пример
      • 347 Варианты и альтернативы
    • 347 Получение или установка локали потока
      • 348 Необходимые шаги
      • 348 Обсуждение
      • 348 Пример
      • 349 Варианты и альтернативы
    • 350 Использование файловой системы на основе C
      • 351 Необходимые шаги
      • 351 Обсуждение
      • 354 Пример
      • 355 Варианты и альтернативы
    • 357 Переименование и удаление файла
      • 357 Необходимые шаги
      • 357 Обсуждение
      • 357 Пример
      • 358 Варианты и альтернативы
  • 359 Глава 6. Форматирование данных
    • 360 Обзор форматирования
      • 360 Флаги формата
      • 362 Ширина поля, точность и символ-заполнитель
      • 362 Связанные с форматом функции-члены потоков
      • 362 Манипуляторы ввода-вывода
      • 363 Форматирование данных с использованием библиотеки локализации
      • 363 Семейство функций printf()
      • 364 Функция strftime()
    • 364 Обзор фасетов
    • 366 Доступ к флагам формата через функции-члены потоков
      • 367 Необходимые шаги
      • 367 Обсуждение
      • 367 Пример
      • 368 Дополнительный пример: отображение установок флагов формата
      • 370 Варианты и альтернативы
    • 371 Отображение числовых значений в различных форматах
      • 371 Необходимые шаги
      • 372 Обсуждение
      • 373 Пример
      • 374 Варианты и альтернативы
    • 374 Установка точности
      • 374 Необходимые шаги
      • 375 Обсуждение
      • 375 Пример
      • 376 Варианты и альтернативы
    • 376 Установка ширины поля и символа-заполнителя
      • 376 Необходимые шаги
      • 377 Обсуждение
      • 377 Пример
      • 378 Дополнительный пример: выравнивание столбцов цифр
      • 379 Варианты и альтернативы
    • 379 Выравнивание вывода
      • 379 Необходимые шаги
      • 380 Обсуждение
      • 380 Пример
      • 381 Варианты и альтернативы
    • 382 Использование манипуляторов ввода-вывода для форматирования данных
      • 382 Необходимые шаги
      • 382 Обсуждение
      • 384 Пример
      • 386 Варианты и альтернативы
    • 386 Форматирование числовых данных для локали
      • 386 Необходимые шаги
      • 386 Обсуждение
      • 387 Пример
      • 387 Варианты и альтернативы
    • 389 Форматирование денежных величин с использованием фасета money_put
      • 389 Необходимые шаги
      • 389 Обсуждение
      • 390 Пример
      • 391 Варианты и альтернативы
    • 392 Использование фасетов moneypunct и numpunct
      • 392 Необходимые шаги
      • 393 Обсуждение
      • 394 Пример
      • 395 Варианты и альтернативы
    • 397 Форматирование времени и даты с использованием фасета time_put
      • 397 Необходимые шаги
      • 398 Обсуждение
      • 400 Пример
      • 401 Варианты и альтернативы
    • 401 Форматирование данных в строку
      • 401 Необходимые шаги
      • 402 Обсуждение
      • 402 Пример
      • 403 Варианты и альтернативы
    • 403 Форматирование времени и даты с применением strftime()
      • 404 Необходимые шаги
      • 404 Обсуждение
      • 405 Пример
      • 406 Варианты и альтернативы
    • 407 Использование printf() для форматирования данных
      • 408 Необходимые шаги
      • 408 Обсуждение
      • 411 Флаги #, + и пробел
      • 412 Пример
      • 413 Варианты и альтернативы
  • 415 Глава 7. Попурри
    • 416 Базовая техника перегрузки операций
      • 416 Необходимые шаги
      • 417 Обсуждение
      • 421 Пример
      • 424 Варианты и альтернативы
    • 425 Перегрузка операции () вызова функции
      • 426 Необходимые шаги
      • 426 Обсуждение
      • 427 Пример
      • 428 Варианты и альтернативы
    • 429 Перегрузка операции индекса []
      • 429 Необходимые шаги
      • 429 Обсуждение
      • 430 Пример
      • 433 Варианты и альтернативы
    • 433 Перегрузка операции ->
      • 433 Необходимые шаги
      • 433 Обсуждение
      • 434 Пример
      • 434 Дополнительный пример: простой класс безопасного указателя
      • 437 Варианты и альтернативы
    • 438 Перегрузка операций new и delete
      • 438 Необходимые шаги
      • 438 Обсуждение
      • 440 Пример
      • 442 Варианты и альтернативы
    • 443 Перегрузка операций инкремента и декремента
      • 443 Необходимые шаги
      • 443 Обсуждение
      • 444 Пример
      • 447 Варианты и альтернативы
    • 448 Создание функции преобразования
      • 448 Необходимые шаги
      • 448 Обсуждение
      • 449 Пример
      • 450 Варианты и альтернативы
    • 451 Создание копирующего конструктора
      • 451 Необходимые шаги
      • 451 Обсуждение
      • 453 Пример
      • 455 Дополнительный пример: безопасный массив, использующий динамическое выделение памяти
      • 460 Варианты и альтернативы
    • 461 Определение типа объекта во время выполнения
      • 461 Необходимые шаги
      • 462 Обсуждение
      • 463 Пример
      • 466 Варианты и альтернативы
    • 466 Использование комплексных чисел
      • 467 Необходимые шаги
      • 467 Обсуждение
      • 468 Пример
      • 468 Варианты и альтернативы
    • 469 Использование auto_ptr
      • 469 Необходимые шаги
      • 469 Обсуждение
      • 470 Пример
      • 471 Варианты и альтернативы
    • 472 Создание явного конструктора
      • 472 Необходимые шаги
      • 472 Обсуждение
      • 473 Пример
      • 474 Варианты и альтернативы
  • 475 Предметный указатель

Инструкция как скачать книгу Герберт Шилдт: C++. Методики программирования Шилдта в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
C++. Методики программирования Шилдта
Рейтинг книги:
3 голоса
1142

Поиск книг:




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

Статистика: