Структурные типы данных. Критерии отбора классов структурных типов данных
Для структурных данных библиотека классов предоставляет группу классов для работы с массивами, списками и отображениями. Все эти объекты изменяют границы динамически.
Можно использовать эти классы как базовые, т.е. выводить из них свои или строить свои классы, используя шаблоны классов. При работе с отображениями используются ключи.
В MFC используется специальный тип отображений «отображение сообщений», чтобы преобразовать сообщение Windows в указатель на функцию обработчик этого сообщения.
Отображения иногда называют Словарями. Все три типа структурных данных в документации называют Совокупностями.
Шаблон-базированные классы совокупностей
Совокупности объектов любого типа реализуют классы:
CArray, CList, CMap (массивы, списки, отображения).
Совокупности ссылок на объекты любого типа реализуют классы:
CTypedPtrArray, CTypedPtrList, CTypedPtrMap.
Фактически эти классы не являются типами, а всего лишь генераторы типов или параметризованными типами данных.
Классы совокупностей не базирующиеся на шаблонах
Массивы | Списки | Отображения |
CObArray | CObList | CMapPtrToWord |
CByteArray | CPtrList | CMapPtrToPtr |
CDWordArray | CStringList | CMapStringToOb |
CPtrArray | CMapStringToPtr | |
CStringArray | CMapStringToString | |
CWordArray | CMapWordToOb | |
CUIntArray | CMapWordToPtr |
В названиях классов раскрывается из назначение.
Напр.: CByteArray – массив байтов,
CObList – списки объектов класса CObject
CMapWordToPtr – отображения из 16-битных ключей в указатели (произвольного типа), т.е. словари определённого типа.
Критерии отбора классов структурных типов данных
Критериями отбора являются:
· поддержка упорядоченности или индексирования
· скорость выполнения основных операций: поиск элемента, его удаление или добавление в совокупность
· является ли совокупность типо-безопасной
· могут ли элементы совокупности сериализоваться, т.е. передаваться по сети или сохраняться на внешнем носителе.
· могут ли элементы дампироваться, т.е. распечатываться для диагностики.
Эти данные привалятся в описании MFC.
Типо-безопасные совокупности гарантируют контроль типов переменных. Типо-безопаные совокупности строятся на основе шаблон – базированных классов: CArray, CList, которые требуют 2-х параметров – типа элемента в массиве или списке, тип аргументов для методов класса (обычно это тип вида «тип_элеменат&» т.е. ссылочный, если тип структура или класс).
CArray<CPerson,CPerson&) myArray;
CPerson me;
myArray->Add(me);
Дата добавления: 2016-05-26; просмотров: 1603;