Классы массивов, списков и схем
Для обработки агрегатов данных библиотека классов предоставляет группу классов коллекции — массивы, списки и карты, которые могут содержать различные объекты и предопределенные типы. Коллекции имеют динамический размер. Эти классы можно использовать в любой программе, написанной для Windows или нет. Однако они наиболее полезны для реализации структур данных, определяющих классы документов в платформе приложений. Вы можете легко наследить специализированные классы коллекций из этих классов или создать их на основе классов шаблонов. Дополнительные сведения об этих подходах см. в статье "Коллекции". Список классов коллекции шаблонов см. в статье "Классы шаблонов для массивов, списков и Карты".
Массивы — это одномерные структуры данных, которые хранятся в памяти непрерывно. Они поддерживают очень быстрый случайный доступ, так как адрес памяти любого заданного элемента можно вычислить путем умножения индекса элемента на размер элемента и добавления результата в базовый адрес массива. Но массивы очень дороги, если необходимо вставить элементы в массив, так как весь массив после вставленного элемента должен быть перемещен, чтобы освободить место для вставки элемента. Массивы могут увеличиваться и уменьшаться по мере необходимости.
Списки похожи на массивы, но хранятся очень иначе. Каждый элемент в списке также содержит указатель на предыдущие и следующие элементы, что делает его вдвойне связанным списком. Это очень быстро для добавления или удаления элементов, так как это происходит только при изменении нескольких указателей. Однако поиск списка может быть дорогостоящим, так как все поиски должны начинаться с одного из концов списка.
Карты связать ключевое значение со значением данных. Например, ключ карты может быть строкой и указателем данных в список. Вы попросите карту предоставить указатель, связанный с определенной строкой. Поиски карт быстро выполняются, так как карты используют хэш-таблицы для поиска ключей. Добавление и удаление элементов также выполняется быстро. Карты часто используются с другими структурами данных в качестве вспомогательных индексов. MFC использует специальную карту, называемую картой сообщений, для сопоставления сообщений Windows с указателем на функцию обработчика для этого сообщения.