Поделиться через


Коллекции

Библиотеки 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++

  • Ли элементы, хранящиеся в коллекции можно сериализовать

  • Ли элементы, хранящиеся в коллекции можно сбросить для диагностики

  • Ли коллекция типобезопасна

942860sh.collapse_all(ru-ru,VS.110).gifВыполняемые задачи

942860sh.collapse_all(ru-ru,VS.110).gifОбщие задачи Коллекция-Класса

942860sh.collapse_all(ru-ru,VS.110).gifШаблон-Основанные задачи Коллекция-Класса

942860sh.collapse_all(ru-ru,VS.110).gifДоступ к членам Шаблон-Основанной коллекции (или нет)

См. также

Основные понятия

Общие разделы MFC

Другие ресурсы

Основные понятия MFC