multiset (STL/CLR)
Описание объекта класса шаблона, что элементы управления менять- длины последовательность элементов являются двунаправленными, имеет доступ. Используется контейнер multiset для управления последовательность элементов как a (почти) сбалансировало упорядоченное дерево узлов, каждый расположении один элемент.
В описании ниже, GValue совпадает с GKey, которые, в свою очередь совпадает с Key если здесь не будет ссылочного типа, в случае которого это Key^.
template<typename Key>
ref class multiset
: 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 ключей. |
|
Тип ключа упорядочения. |
|
Тип ссылки на элемент. |
|
Тип обратного итератора для контролируемой последовательности. |
|
Тип расстояния a (не отрицательного 2) между элементами. |
|
Порядок делегат для 2 значений элементов. |
|
Тип элемента. |
Функция Member |
Описание |
---|---|
Задает начало управляемой последовательности. |
|
Удаляет все элементы. |
|
Подсчитывает число элементов, соответствующий указанному ключу. |
|
Тесты отсутствуют ли какие-либо элементы. |
|
Задает конец управляемой последовательности. |
|
Находит диапазон, соответствующий указанному ключу. |
|
Удаляет элементы в указанных положениях. |
|
Определяет элемент, соответствующий указанному ключу. |
|
Добавляет элементы. |
|
Копирует порядок делегат для 2 ключей. |
|
Находит начало диапазона, соответствующий указанному ключу. |
|
Создает объект значение. |
|
Создает объект контейнера. |
|
Задает начало обратной управляемой последовательности. |
|
Задает конец обратной управляемой последовательности. |
|
Подсчитывает количество элементов. |
|
Меняет местами содержимое двух контейнеров. |
|
Копирует контролируемая последовательность в новый массив. |
|
Находит конечную точку диапазона, соответствующий указанному ключу. |
|
Копирует порядок делегат для 2 значений элементов. |
Оператор |
Описание |
---|---|
Заменяет контролируемая последовательность. |
|
Определяет, является ли объект multiset не равен другому объекту multiset. |
|
Определяет, является ли объект multiset меньше другой объект multiset. |
|
Определяет, является ли объект multiset меньше или равно другому объекту multiset. |
|
Определяет, является ли объект multiset равен другому объекту multiset. |
|
Определяет, является ли объект multiset больше другого объекта multiset. |
|
Определяет, является ли объект multiset больше или равно другому объекту multiset. |
Интерфейсы
Интерфейс |
Описание |
---|---|
Дублируйте объект. |
|
Последовательность между элементами. |
|
Обеспечение группу в составе элементы. |
|
Через последовательность типизированных элементов. |
|
Обеспечение группу в составе типизированных элементов. |
|
ITree<Key, Value> |
Обслуживайте универсальный контейнер. |
Заметки
Объект выделяет и освобождает хранилище для последовательности его элементов управления в отдельные узлы. Он добавляет элементы в a (почти) не балансировал дерево, это не позволяет упорядоченный, изменив ссылки между узлами, не скопировать содержимое одного узла на другой. Это означает, что можно добавлять и удалять элементы свободно, не нарушая остальных элементов.
Объект сортирует последовательность его элементы управления путем вызова делегата сохраненный объект типа multiset::key_compare (STL/CLR). Можно определить, сохраненный объект делегата при построении multiset. если не указан ни один объект делегата, по умолчанию используется сравнение operator<(key_type, key_type). Чтобы открыть этот сохраненный объект, вызвав функцию-член multiset::key_comp (STL/CLR)().
Такой объект делегата должен создать строгого слабое упорядочение на ключах типа multiset::key_type (STL/CLR). Это означает, что для всех ключей, 2 X и Y:
key_comp()(X, Y) возвращает тот же логический результат при каждом вызове.
Если key_comp()(X, Y) выполняется, key_comp()(Y, X) должно быть значение.
Если key_comp()(X, Y) выполняется, считается, что приказано X перед Y.
Если !key_comp()(X, Y) && !key_comp()(Y, X) выполняется, считается, что имеют X и Y соответствующий заказ.
Для любого элемента X, предшествующего Y в контролируемой последовательности, key_comp()(Y, X) ложно. (Для объекта делегата, по умолчанию ключи никогда не уменьшает значение). В отличие от класса шаблона set (STL/CLR), объект класса шаблона multiset не требует ключи для всех элементов уникальны. (Два или более ключи могут иметь соответствующий заказ).
Каждый элемент служит в качестве ey, и как значение. Последовательность представляется в виде, позволяющем поиск, вставки и удаления произвольного элемента с несколькими операций пропорциональных в логарифму числа элементов в последовательности (логарифмическом времени). Кроме того, что вставка элемента нет итераторы, и удаление элементов только что эти итераторы, указывающих на удаленный элемент.
Multiset поддерживает двунаправленные итераторы. это означает, что можно выполнить с соседним элементам заданного итератор, обозначает элемент в контролируемой последовательности. Специальный головной узел соответствует итератору возвращенным multiset::end (STL/CLR)(). Можно декремент такой итератор для достижения последнего элемента в контролируемой последовательности, если в настоящий момент. Можно увеличить итератор multiset для достижения головного узла, а затем сравнивает равно end(). Однако нельзя разыменование итератор, end().
Обратите внимание, что нельзя обращаться к элементу multiset непосредственно заданного свою позицию численную -- это требует произвольного доступа итератора.
Итератор multiset хранит дескриптор его связанный узел multiset, который, в свою очередь, сохраняет его связанный дескриптор контейнер. Можно использовать итераторы только со связанными объектами контейнера. Итератор multiset остается допустимым, пока его связанный узел multiset связан с некоторым multiset. Кроме того, допустимый итератор dereferencable -- его можно использовать для доступа или изменения значения элемента он обозначает -- пока не равно end().
Стирающ или удаление элементов вызывает деструктор этого сохраненного значения. Удалить контейнер удаляются все элементы. Таким образом, тип которого контейнер элемента ссылочный класс гарантирует, что никаких элементов не переживают контейнер. Однако стоит отметить, что контейнер дескрипторов делает not уничтожает его элементы.
Требования
Заголовок:<cliext/set>
Пространство имен: cliext