Коллекции
Библиотеки Microsoft Foundation Class предоставляет классы коллекций для управления группами в составе объекты.Эти классы 2 типов:
Классы коллекций, созданных на основе шаблонов C++
Классы коллекций не созданные на основе шаблонов
Примечание |
---|
Если код уже использует классы коллекций nontemplate, то можно продолжать их использовать.При написании новых типобезопасные классы коллекций для собственных типов данных, рекомендуется использовать новые шаблон-основанные классы. |
Фигуры коллекции
Класс коллекции «характеризуется своей формой» и типами элементов.Фигура относится к способу объекты, в свою очередь, организованы и хранятся коллекции.MFC содержит 3 основных фигуры коллекции. списки, массивы и сопоставления (называемые также словари).Можно выбрать форма коллекции, которая больше всего подходит к данной конкретной проблемы программирования.
В каждой из фигур 3, предоставленных коллекции кратко описано далее в этом разделе.Для сравнения функций фигур, помогающие решить, что наилучший для программы см. в разделе Класс Recommendations for Choosing a Collection.
List
Класс списка содержит упорядоченный список элементов, неиндексируемый, реализованный как сдвоенный связанного списка.В списке «головку» и «конца» и добавление или удаление элементов из head или метода с префиксом tail или вставка или удаление элементов в середине очень быстро.
Массив
Класс динамически указанный размер массива содержит упорядоченный и целое число-индексированный массив объектов.
Сопоставление (известные также как словарь)
Сопоставление коллекция, которая связывает объект раздела со значением объекта.
Шаблон-Основанные классы коллекций
Самый простой способ реализации типобезопасную коллекцию, содержащую объекты любого типа использовать один из классов шаблон-основанных MFC.Примеры таких классов см. в разделе пример COLLECT MFC.
В следующей таблице перечислены шаблон-основанные классы коллекций MFC.
Классы шаблонов коллекции
Содержимое коллекции |
Массивы |
Списки |
Карты |
---|---|---|---|
Коллекции объектов любого типа |
CArray |
CList |
CMap |
Коллекции указателей на объекты любого типа |
CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
Классы коллекций не на основе шаблонов
Если приложение уже использует классы MFC nontemplate, то можно продолжать их использовать.Однако для новых коллекций, рекомендуется использовать шаблон-основанные классы.В следующей таблице перечислены классы коллекций MFC, которые не основаны на шаблонах.
Классы коллекций Nontemplate
Массивы |
Списки |
Карты |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
|
CMapStringToPtr |
CStringArray |
|
CMapStringToString |
CWordArray |
|
CMapWordToOb |
CUIntArray |
|
CMapWordToPtr |
Характеристики таблицы классов коллекций MFC в Класс Recommendations for Choosing a Collection описывающие классы коллекций MFC на основе этих характеристик (за исключением фигуры):
Использует ли класс шаблонов C++
Ли элементы, хранящиеся в коллекции можно сериализовать
Ли элементы, хранящиеся в коллекции можно сбросить для диагностики
Ли коллекция типобезопасна