multimap (STL/CLR)
Класс-шаблон описывает объект, элементы управления менять-длины последовательность элементов, имеющей двунаправленный доступ.Контейнер multimap используется для управления последовательность элементов, сколько a (почти) сбалансировало упорядоченное дерево узлов, каждый один элемент.Элемент состоит из клавиш для упорядочения последовательности и сопоставляемого значения, которое проходит вперед для езды.
В приведенном ниже описании GValue совпадают:
Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>
Здесь:
GKey так же, как и Key если последний не будет типа ref. в этом случае это Key^
GMapped так же, как и Mapped если последний не будет типа ref. в этом случае это Mapped^
template<typename Key,
typename Mapped>
ref class multimap
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
Параметры
Ключ
Тип ключа для элемента в управляемой последовательности.Сопоставляется
Тип дополнительного компонента элементов в управляемой последовательности.
Члены
Определение типа |
Описание |
---|---|
Тип постоянного итератора для управляемой последовательности. |
|
Тип постоянной ссылки на элемент. |
|
Тип постоянного обратного итератора для управляемой последовательности. |
|
Тип диапазона (возможно, подписанного a 2) между элементами. |
|
Тип универсального интерфейса для контейнера. |
|
Тип итератора для универсального интерфейса для контейнера. |
|
Тип обратного итератора для универсального интерфейса для контейнера. |
|
Тип элемента для универсального интерфейса для контейнера. |
|
Тип итератора для управляемой последовательности. |
|
Делегат упорядочения для 2 клавиш. |
|
Тип упорядочивание клавиш. |
|
Тип сопоставляемого значения, связанные с каждой клавиша. |
|
Тип ссылки к элементу. |
|
Тип обратного итератора для управляемой последовательности. |
|
Тип диапазона (non-отрицательного 2) между элементами. |
|
Делегат упорядочения для 2 значений элементов. |
|
Тип элемента. |
Функция-член |
Описание |
---|---|
Задает начало управляемой последовательности. |
|
Удаляет все элементы. |
|
Подсчитывает элементы, соответствующие указанному ключу. |
|
Проверяет, не присутствуют ли элементы. |
|
Задает конец управляемой последовательности. |
|
Ищет диапазон, соответствующий указанному ключу. |
|
Удаляет элементы в указанных положениях. |
|
Определяет элемент, соответствующий указанному ключу. |
|
Добавляет элементы. |
|
Копирует делегат упорядочения для 2 клавиш. |
|
Находит начало диапазона, соответствующий указанному ключу. |
|
Создает значение объекта. |
|
Создает объект контейнера. |
|
Задает начало обратной управляемой последовательности. |
|
Задает конец обратной управляемой последовательности. |
|
Подсчитывает количество элементов. |
|
Меняет местами содержимое двух контейнеров. |
|
Копирует управляемую последовательность, в новый массив. |
|
Находит конец диапазона, соответствующий указанному ключу. |
|
Копирует делегат упорядочения для 2 значений элементов. |
Оператор |
Описание |
---|---|
Заменяет управляемую последовательность. |
|
Определяет, является ли объект multimap не равен другому объекту multimap. |
|
Определяет, если объект multimap, чем другой объект multimap. |
|
Определяет, является ли объект multimap меньше или равно другому объекту multimap. |
|
Определяет, является ли объект multimap равен другому объекту multimap. |
|
Определяет, является ли объект multimap больше, чем другой объект multimap. |
|
Определяет, является ли объект multimap больше или равно другому объекту multimap. |
Интерфейсы
Интерфейс |
Описание |
---|---|
Повторяющиеся объект. |
|
Последовательность через элементы. |
|
Обслуживание группу в составе элементы. |
|
Последовательность через типизированные элементы. |
|
Обслуживание группу в составе типизированные элементы. |
|
ITree<Клавиша значение> |
Универсальный шаблон контейнер службы. |
Заметки
Объект выборки и хранилище свободенов для последовательности она контролирует как отдельные узлы.Он вставляет элементы (почти) не балансировал дерево, оно содержит упорядоченный путем изменения связей между узлами, никогда, копируя содержимое одного узла в другой.Это означает, что можно вставлять и удалять элементы свободно, не нарушая остальных элементов.
Объект упорядочивает последовательность он контролирует путем вызова делегата сохраненный объект типа multimap::key_compare (STL/CLR).Можно указать сохраненные объект делегата при построении multimap; если не указан ни один объект делегата, то значением по умолчанию является сравнение operator<(key_type, key_type).Доступ к этому, сохраненный объект, вызвав функцию-член multimap::key_comp (STL/CLR)().
Такой объект делегата должен установить строгий порядок клавишах типа multimap::key_type (STL/CLR) на слабый.Это означает для всех 2 клавиш X и Y:
key_comp()(X, Y) возвращает один и тот же логический результат при каждом вызове.
Если key_comp()(X, Y) значение равно true, то key_comp()(Y, X) должен иметь значение false.
Если key_comp()(X, Y) значение равно true, то говорят, что ordered X перед Y.
Если !key_comp()(X, Y) && !key_comp()(Y, X) значение равно true, то говорят, что имеют X и Y эквивалентный упорядочение.
Для любого элемента X, который предшествует Y в управляемой последовательности, key_comp()(Y, X) false.(По умолчанию для объекта делегата, клавиш никогда не снижают в значении). В отличие от класса map (STL/CLR) шаблона, объект класса multimap шаблона не требует клавиш для всех элементов уникальными.(Двух или нескольких клавиш могут иметь эквивалентный упорядочение).
Каждый элемент содержит отдельный ключ и сопоставленное значение.Последовательность представлена способом, который разрешает уточняющего запроса, вставки и удаления произвольного элемента с несколькими операциями пропорциональных к логарифму числа элементов в последовательности (логарифмическом времени).Кроме того, вставка элемента объявляет никаких итераторы и удаление элемента делает недействительным только эти итераторы, указывающие на удаленном элементе.
Multimap поддерживает двунаправленные итераторы, что означает, что можно пройти по смежным элементам данного итератора, который задает элемент управляемой последовательности.Нерегламентированный головной узел соответствует итератору, возвращенному multimap::end (STL/CLR)().Можно уменьшить итератор для достижения последнего элемента в управляемой последовательности, если он имеется.Можно увеличивать итератор multimap для достижения головного узла, а затем сравнивает равно end().Однако нельзя разыменования итератор, возвращаемый end().
Обратите внимание, что нельзя обращаться к элементу multimap непосредственно заданным свою числовую позицию -- это требует итератора произвольного доступа.
Итератор multimap хранит маркер в связанный обработчик действия multimap узла, который в свою очередь содержит дескриптор к его связанный контейнер.Итераторы можно использовать только с их соответствующими объект-контейнерами.Итератор multimap остается допустимым, пока его связанный узел multimap связан с определенным multimap.Кроме того, допустимый итератор dereferencable -- его можно использовать для доступа или изменения значения элемента он обозначает -- пока она не равен end().
Стирающ или удаление элемента вызывает деструктор для своего, хранящиеся значения.Разрушать контейнер стирает все элементы.Таким образом, контейнер, тип элементов которого класс ref гарантирует, что элементы не переживают контейнер.Однако следует отметить, not удаляет контейнер маркеров делает его элементы.
Требования
заголовок: <cliext и сопоставление>
Cliext пространство имен: