Шаг 179.
Библиотека STL. Контейнеры STL. Операции над отображениями и мультиотображениями. Отображения как ассоциативные массивы

    На этом шаге мы рассмотрим представление отображения в виде ассоциативного массива.

    Ассоциативные контейнеры обычно не предоставляют прямого доступа к своим элементам; все обращения к элементам производятся через итераторы. Впрочем, отображения являются исключением из этого правила. Неконстантные отображения поддерживают оператор индексирования [] для прямого доступа к элементам (таблица 1). Тем не менее в качестве "индекса" используется не целочисленная позиция элемента, а ключ, предназначенный для его идентификации. Это означает, что индекс может относиться к произвольному типу. Подобный интерфейс характерен для так называемых ассоциативных массивов.

Таблица 1. Прямой доступ к элементам отображения оператором []
Операция Описание
m[key] Возвращает ссылку на значение элемента с ключом key. Вставляет элемент с ключом key, если его не существует

    Ассоциативные массивы отличаются от обычных не только типом индекса. Индекс ассоциативного массива в принципе не может быть неправильным. Если элемента с заданным ключом не существует, в отображение автоматически вставляется новый элемент, значение которого инициализируется конструктором по умолчанию соответствующего типа. Чтобы эта схема работала, тип значения обязательно должен иметь конструктор по умолчанию. Базовые типы данных предоставляют конструктор по умолчанию, который инициализирует их значения нулями (смотри 34 шаг).

    У ассоциативных массивов есть как свои достоинства, так и недостатки.

    Со следующего шага мы начнем рассматривать обработку исключений в отображениях и мультиотображениях.




Предыдущий шаг Содержание Следующий шаг