Меню сайта |
|
 |
Статистика |
Онлайн всего: 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 |
| |
 | |  |
|
Вход на сайт |
|
 |
Поиск |
|
 |
Календарь |
|
 |
Архив записей |
|
 |
|