Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
oop.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
252.93 Кб
Скачать

28.Идиомы разработки hush

Хеширование (иногда хэширование, англ. hashing) — преобразование по определённому алгоритму входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хешем, хеш-кодом или сводкой сообщения (англ. message digest). Если у двух строк хеш-коды разные, строки гарантированно различаются, если одинаковые — строки, вероятно, совпадают. Применение хеширования: Построение ассоциативных массивов. Поиск дубликатов среди множества файлов. «Почти уникальный» идентификатор для файлов. Контрольное суммирование с целью обнаружения случайных и/или намеренных ошибок при хранении или передаче. Хранение паролей в системах защиты (в этом случае доступ к области памяти, где находятся пароли, не позволяет восстановить сам пароль). Выработка электронной подписи (на самом деле на практике подписывается не само сообщение, а его хэш-образ). Существует множество алгоритмов хеширования с различными свойствами (разрядность, вычислительная сложность, криптостойкость и т. п.). Выбор той или иной хеш-функции определяется спецификой решаемой задачи. Простейшими примерами хеш-функций могут служить контрольная сумма или CRC.

29.Что такое контей. Созд контейнеров

Контейнеры – это объекты, реализующие общие структуры данных, предлагающие функции-элементы для доступа к каждому элементу данных и добавления таких элементов. Контейнеры могут содержать целые и вещественные числа, строки, структуры, классы, типы, определенные пользователями, и любые объекты C++. Контейнеры могут хранить копии объектов (прямые контейнеры) или указатели на объекты (косвенные контейнеры). В некоторых типах контейнеров содержимое записывается в отсортированном виде. Отсортированные контейнеры (как косвенные, так и прямые) должны иметь соответствующую операцию < (меньше), что позволяет определить порядок элементов. Также контейнеры позволяют контролировать управление памятью. Контейнеры и файлы заголовков Borland: Массив (arrays.h), Ассоциация (assoc.h), Очередь (queues.h), Множество (sets.h), Стек (stacks.h). Создание программы контейнера MFC с использованием мастера приложений MFC обеспечивает доступ ко многим функциям элементов управления ActiveX и автоматизацию, реализованную классами MFC и ActiveX. Эти функции включают визуальное редактирование, автоматизацию, создание составных файлов, а также поддержку элементов управления. Возможности визуального редактирования мастера приложений MFC, которые будет поддерживать родительская программа, включают создание контейнера, мини-сервера, полного сервера и программы, которая одновременно является и контейнером, и сервером.

30.Абстрактный тип данных (атд) и фундаментальная структура данных (фсд). Их взаимосвязь

Библиотеку класса контейнера можно разделить на две категории: фундаментальные структуры данных FDS (Fundamental Data Structures) и абстрактные типы данных ADT (Abstract Data Types). Структуры FDS - это контейнеры нижнего уровня, реализующие структуры памяти. Каждая FDS имеет фундаментальные функции добавления и отсоединения. Типы ADT обычно используются в конструкциях обработки данных. Каждый тип ADT имеет соответствующие методы, например, контейнеры стека - функции-элементы Push и Pop. Каждый тип ADT основан на FDS. Например, TArrayAsVector реализует массив, используя в качестве соответствующей структуры FDS вектор. Контейнеры ADT используют характеристики хранения соответствующих FDS и добавляет специфические методы доступа, которые делают каждый из них уникальным.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]