Четверг, 19.06.2025, 20:53

Приветствую Вас Гость | RSS
Мой сайт
ГлавнаяРегистрацияВход
Меню сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » 2015 » Октябрь » 8 » Теория и практика С++ : Реализация разреженного массива на C++
06:47
Теория и практика С++ : Реализация разреженного массива на C++

Книга Герберта Шилдта, одного из самых известных авторов компьютерной литературы, посвящена обсуждению сложных вопросов программирования. В ней подробно рассмотрены параметризованные функции и классы, а также такие задачи программирования, как реализация разреженных массивов, построение программ разбора математических выражений, алгоритмы шифрования и сжатия данных, а также проблемы разработки собственных языков программирования и написания интеграторов для них. Приводятся ценные практические советы по приемам и методам работы, а также тексты готовых работающих программ. Для профессиональных программистов.

Содержание

Введение

Глава 1. Использование параметризованных функций

  • Почему следует использовать параметризованные функции?
  • Методы параметризации без использования шаблонов
  • Изобретение шаблонов
  • Обзор функций шаблонов
  • Эффективность шаблонов функций
  • Построение параметризованных функций сортировки
  • Классы алгоритмов сортировки
  • Сравнительный анализ алгоритмов сортировки
  • Пузырьковая сортировка — злой дух перестановок
  • Сортировка методом отбора
  • Сортировка методом вставки
  • Усовершенствованные методы сортировки
  • Сортировка методом Шелла
  • Метод быстрой сортировки
  • Сравнение алгоритма быстрой сортировки со стандартной функцией qsort( )
  • Сортировка типов, определенных пользователем
  • Выбор метода сортировки
  • Поиск
  • Методы поиска
  • Последовательный поиск
  • Бинарный поиск
  • Рекомендации для самостоятельной разработки

Глава 2. Исследование параметризованных классов

  • Обзор параметризованных классов
  • Ограниченные массивы
  • Перегрузка оператора [ ]
  • Построение параметризованного ограниченного массива
  • Очереди
  • Циклическая очередь
  • Стеки
  • Связные списки
  • Построение параметризованного класса списка с двойными связями
  • Функция store( )
  • Функция remove( )
  • Отображение списка
  • Поиск объекта в списке
  • Полный листинг параметризованного класса связного списка с двойными ссылками
  • Бинарные деревья
  • Параметризованный класс дерева
  • Добавление элементов в дерево
  • Прохождение дерева
  • Поиск по дереву
  • Удаление элемента дерева
  • Рекомендации для самостоятельной разработки

Глава 3. Объектно-ориентированная программа разбора математических выражений

  • Выражения
  • Разбор выражений: постановка проблемы
  • Разбор выражения
  • Класс Parser
  • Разбиение выражений
  • Простая программа разбора выражений
  • Принципы работы программы разбора выражений.
  • Включение в программу разбора выражений возможности работы с переменными
  • Синтаксическая проверка в рекурсивно-нисходящем алгоритме разбора выражений
  • Построение параметризованной версии программы разбора выражений
  • Рекомендации для самостоятельной разработки

Глава 4. Разреженные массивы в стиле C++

  • Цели разработки разреженных массивов
  • Объекты типа разреженных массивов
  • Разреженный массив на базе связного списка
  • Некоторые детали использования связного cписка
  • Анализ подхода с использованием связного списка
  • Разреженным массивы на основе бинарных деревьев
  • Некоторые детали реализации разреженных массивов на основе бинарных деревьев
  • Анализ метода реализации разреженных массивов на основе бинарных деревьев
  • Разреженные массивы на основе массивов указателей
  • Некоторые детали реализации разреженных массивов с помощью массива указателей
  • Анализ метода, использующего массив указателей
  • Хэширование
  • Некоторые детали хэширования
  • Анализ хэширования
  • Выбор подхода к реализации разреженных массивов
  • Рекомендации для самостоятельной разработки

Глава 5. Принципы работы с информацией типа Run-time и ее использование

  • Зачем нужна информация RTTI?
  • Использование механизма typeid
  • Использование typeid для исправления программы обработки координат
  • Использование механизма dynamic_cast
  • Операторы преобразования типов.
  • Использование оператора dynamic_cast для исправления функции quadrant( )
  • Применение RTTI
  • Рекомендации для самостоятельной разработки

Глава 6. Строки: использование стандартного класса строк

  • Почему стандартный класс string включен в определение C++?
  • Конструкторы строк
  • Операторы класса string
  • Некоторые функции-члены класса string
  • Присваивание и добавление частей строк
  • Вставка, удаление и замена
  • Поиск подстрок
  • Сравнение частей строк
  • Получение длины строки
  • Получение строки, завершающейся нулем
  • Простой строкоориентированный редактор, использующий класс string
  • Некоторые детали работы редактора
  • Рекомендации для самостоятельной разработки

Глава 7. Шифрование и сжатие данных

  • Краткая история криптографии
  • Три основных типа шифров
  • Шифры замены
  • Алгоритмы перестановок
  • Шифры битовых манипуляций
  • Сжатие данных
  • Преобразование 8-битного набора символов в 7-битный
  • Преобразование 4-байтового набора в 3-байтовый
  • Рекомендации для самостоятельной разработки

Глава 8. Интерфейс с функциями языка ассемблера

  • Для чего нужно использование языка ассемблера?
  • Основные принципы интерфейса с языком ассемблера
  • Соглашения о вызовах для компилятора C++
  • Соглашения о вызовах для Microsoft/Borland C++
  • Несколько слов о моделях памяти
  • Разработка функции на ассемблере
  • Передача аргументов функции
  • Вызов библиотечных функций и операторов
  • Получение доступа к структурам и классам
  • Использование указателей и ссылок
  • Пример, использующий гигантскую (huge) модель памяти
  • Ручная оптимизация
  • Построение основы для кода на ассемблере
  • Использование asm
  • Рекомендации для самостоятельной разработки

Глава 9. Создание и интеграция новых типов данных

  • Теория множеств
  • Операции над множествами
  • Определение типа множества
  • Конструкторы и деструктор класса Set
  • Добавление и удаление членов множества
  • Определение членства
  • Конструктор Copy
  • Присваивание для множеств
  • Перегрузка оператора +
  • Добавление нового элемента в состав множества
  • Построение объединения множеств
  • Перегрузка оператора -
  • Удаление элемента из множества
  • Разность множеств
  • Пересечение множеств
  • Симметричная разность
  • Определение равенства, неравенства и подмножества
  • Определение членства
  • Преобразование в целое
  • Перегрузка операторов ввода/вывода
  • Демонстрационная программа работы с множествами
  • Рекомендации для самостоятельной разработки

Глава 10. Реализация языковых интерпретаторов на C++

  • Модуль разбора выражений Small BASIC
  • Выражения Small BASIC
  • Элементы Small BASIC
  • Программа разбора выражений Small BASIC
  • Как программа разбора выражений обрабатывает переменные
  • Интерпретатор Small BASIC
  • Ключевые слова
  • Загрузка программы
  • Главный цикл
  • Функция присваивания
  • Команда PRINT
  • Команда INPUT
  • Команда GOTO
  • Утверждение IF
  • Цикл FOR
  • Конструкция GOSUB
  • Полный код интерпретатора
  • Использование Small BASIC
  • Дополнение интерпретатора и расширение его возможностей
  • Разработка собственного языка программирования

Глава 11. От С++ к Java

  • Что представляет собой Java?
  • Почему Java?
  • Защищенность
  • Переносимость
  • Магическое решение Java: Java Bytecode
  • Различия между Java и С++
  • Какие возможности отсутствуют в Java?
  • Что было добавлено в Java?
  • Пример программы на Java
  • Методы вместо функций
  • Компиляция программы на Java
  • Второй пример
  • Работа с классами
  • Финализаторы
  • Иерархия классов Java
  • Классы и файлы
  • Пакеты и импорт
  • Интерфейсы
  • Стандартные классы
  • Рекомендации для самостоятельной разработки
Приложение А. Список ключевых слов C ++ Index
Просмотров: 443 | Добавил: supoinclus | Рейтинг: 0.0/0
Всего комментариев: 0
Вход на сайт

Поиск

Календарь
«  Октябрь 2015  »
Пн Вт Ср Чт Пт Сб Вс
   1234
567891011
12131415161718
19202122232425
262728293031

Архив записей

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2025Бесплатный хостинг uCoz