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


hash_set (STL/CLR)

Описание объекта класса шаблона, что элементы управления менять- длины последовательность элементов являются двунаправленными, имеет доступ. Используется контейнер hash_set для управления последовательность элементов в виде хэш-таблицы, каждая запись таблицы расположении двунаправленного связанного списка узлов, каждый узел расположении один элемент. Значение каждого элемента используется как ключ, для упорядочения последовательности.

В описании ниже, GValue совпадает с GKey, которые, в свою очередь совпадает с Key если здесь не будет ссылочного типа, в случае которого это Key^.

template<typename Key>
    ref class hash_set
        :   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::IHash<Gkey, GValue>
    { ..... };

Параметры

  • Ключ
    Тип ключа для элемента в управляемой последовательности.

Члены

Определение типа

Описание

hash_set::const_iterator (STL/CLR)

Тип постоянного итератора для управляемой последовательности.

hash_set::const_reference (STL/CLR)

Тип постоянной ссылки на элемент.

hash_set::const_reverse_iterator (STL/CLR)

Тип константы обратного итератора для контролируемой последовательности.

hash_set::difference_type (STL/CLR)

Тип расстояния (возможно, подписанного a 2) между элементами.

hash_set::generic_container (STL/CLR)

Тип универсального интерфейса для контейнера.

hash_set::generic_iterator (STL/CLR)

Тип итератора для универсального интерфейса для контейнера.

hash_set::generic_reverse_iterator (STL/CLR)

Тип обратного итератора для универсального интерфейса для контейнера.

hash_set::generic_value (STL/CLR)

Тип элемента для универсального интерфейса для контейнера.

hash_set::hasher (STL/CLR)

Делегат хэширования для ключа.

hash_set::iterator (STL/CLR)

Тип итератора для управляемой последовательности.

hash_set::key_compare (STL/CLR)

Порядок делегат для 2 ключей.

hash_set::key_type (STL/CLR)

Тип ключа упорядочения.

hash_set::reference (STL/CLR)

Тип ссылки на элемент.

hash_set::reverse_iterator (STL/CLR)

Тип обратного итератора для контролируемой последовательности.

hash_set::size_type (STL/CLR)

Тип расстояния a (не отрицательного 2) между элементами.

hash_set::value_compare (STL/CLR)

Порядок делегат для 2 значений элементов.

hash_set::value_type (STL/CLR)

Тип элемента.

Функция Member

Описание

hash_set::begin (STL/CLR)

Задает начало управляемой последовательности.

hash_set::bucket_count (STL/CLR)

Подсчитывает число блоков.

hash_set::clear (STL/CLR)

Удаляет все элементы.

hash_set::count (STL/CLR)

Подсчитывает число элементов, соответствующий указанному ключу.

hash_set::empty (STL/CLR)

Тесты отсутствуют ли какие-либо элементы.

hash_set::end (STL/CLR)

Задает конец управляемой последовательности.

hash_set::equal_range (STL/CLR)

Находит диапазон, соответствующий указанному ключу.

hash_set::erase (STL/CLR)

Удаляет элементы в указанных положениях.

hash_set::find (STL/CLR)

Определяет элемент, соответствующий указанному ключу.

hash_set::hash_delegate (STL/CLR)

Копирует делегат хэширования для ключа.

hash_set::hash_set (STL/CLR)

Создает объект контейнера.

hash_set::insert (STL/CLR)

Добавляет элементы.

hash_set::key_comp (STL/CLR)

Копирует порядок делегат для 2 ключей.

hash_set::load_factor (STL/CLR)

Подсчитывает число элементов " для каждого блока.

hash_set::lower_bound (STL/CLR)

Находит начало диапазона, соответствующий указанному ключу.

hash_set::make_value (STL/CLR)

Создает объект значение.

hash_set::max_load_factor (STL/CLR)

Возвращает или задает максимальное количество элементов для каждого блока.

hash_set::rbegin (STL/CLR)

Задает начало обратной управляемой последовательности.

hash_set::rehash (STL/CLR)

Повторно создает хэш-таблицу.

hash_set::rend (STL/CLR)

Задает конец обратной управляемой последовательности.

hash_set::size (STL/CLR)

Подсчитывает количество элементов.

hash_set::swap (STL/CLR)

Меняет местами содержимое двух контейнеров.

hash_set::to_array (STL/CLR)

Копирует контролируемая последовательность в новый массив.

hash_set::upper_bound (STL/CLR)

Находит конечную точку диапазона, соответствующий указанному ключу.

hash_set::value_comp (STL/CLR)

Копирует порядок делегат для 2 значений элементов.

Оператор

Описание

hash_set::operator= (STL/CLR)

Заменяет контролируемая последовательность.

Интерфейсы

Интерфейс

Описание

ICloneable

Дублируйте объект.

IEnumerable

Последовательность между элементами.

ICollection

Обеспечение группу в составе элементы.

IEnumerable

Через последовательность типизированных элементов.

ICollection

Обеспечение группу в составе типизированных элементов.

IHash<Key, Value>

Обслуживайте универсальный контейнер.

Заметки

Объект выделяет и освобождает хранилище для последовательности его элементов управления в отдельные узлы в двунаправленном связанный список. Для ускорения доступа он также поддерживает массив менять- длины указателей в список (хэш-таблицу), эффективно управляя список целиком в виде последовательности подсписков, или блоков. Он не добавляет элементы в блок, он сохраняет упорядоченный, изменив ссылки между узлами, не скопировать содержимое одного узла на другой. Это означает, что можно добавлять и удалять элементы свободно, не нарушая остальных элементов.

Объект является упорядоченным каждым из его элементов управления путем вызова делегата сохраненный объект типа hash_set::key_compare (STL/CLR). Можно определить, сохраненный объект делегата при построении hash_set; если не указан ни один объект делегата, по умолчанию используется сравнение operator<=(key_type, key_type).

Чтобы открыть сохраненный объект делегата, вызвав функцию-член hash_set::key_comp (STL/CLR)(). Такой объект делегата должен определить соответствующий порядка между ключами типа hash_set::key_type (STL/CLR). Это означает, что для всех ключей, 2 X и Y:

key_comp()(X, Y) возвращает тот же логический результат при каждом вызове.

Если key_comp()(X, Y) && key_comp()(Y, X) выполняется, считается, что имеют X и Y соответствующий заказ.

Любое правило со заказов, ведет себя так же, как operator<=(key_type, key_type), operator>=(key_type, key_type) или operator==(key_type, key_type) определяет eqivalent упорядочение.

Обратите внимание, что контейнер предоставляет только что элементы ключи которых имеют эквивалентные упорядочение (и хэш, к тому же целочисленному значению) смежны в блоке. В отличие от класса шаблона hash_multiset (STL/CLR), объект класса шаблона hash_set гарантирует, что ключи для всех элементов уникальны. (Отсутствует 2 ключей не имеют соответствующий заказ).

Объект, который определяет блок должен содержать заданный порядок вызова ключ, сохраненный объект делегата типа hash_set::hasher (STL/CLR). Чтобы открыть этот сохраненный объект, вызвав функцию-член hash_set::hash_delegate (STL/CLR)() для получения целочисленное значение, которое зависит от значения ключа. Можно определить, сохраненный объект делегата при построении hash_set; если не указан ни один объект делегата, по умолчанию используется функция System::Object::hash_value(key_type). Это означает, что для всех ключей, X и Y:

hash_delegate()(X) возвращает тот же результат целые числа при каждом вызове.

Если X и Y имеет соответствующий порядок, hash_delegate()(X) должно возвращать один и тот же результат целого числа, как hash_delegate()(Y).

Каждый элемент служит в качестве ключа, и как значение. Последовательность представляется в виде, позволяющем поиск, вставки и удаления произвольного элемента с несколькими операций, не зависящий от числа элементов в последовательности (постоянно время) -- по крайней мере в лучше всего вариантов. Кроме того, что вставка элемента нет итераторы, и удаление элементов только что эти итераторы, указывающих на удаленный элемент.

Если хэшированных значений не распределяются равномерно, то может выродиться хэш-таблица. В крайности -- для хэш-функция, всегда возвращает то же значение -- поиск, вставки и удаления пропорциональны на число элементов в последовательности (линейном времени). Контейнер стремится следует выбрать хэш-функции, средний размер блока, и размер таблицы хэширования (общее количество блоков), но можно переопределить любой этих вариантов. См., например, функции hash_set::max_load_factor (STL/CLR) и hash_set::rehash (STL/CLR).

Hash_set поддерживает двунаправленные итераторы), что позволяет шаг с соседним элементам заданного итератор, обозначает элемент в контролируемой последовательности. Специальный головной узел соответствует итератору возвращенным hash_set::end (STL/CLR)(). Можно декремент такой итератор для достижения последнего элемента в контролируемой последовательности, если в настоящий момент. Можно увеличить итератор hash_set для достижения головного узла, а затем сравнивает равно end(). Однако нельзя разыменование итератор, end().

Обратите внимание, что нельзя обращаться к элементу hash_set непосредственно заданного свою позицию численную -- это требует произвольного доступа итератора.

Итератор hash_set хранит дескриптор его связанный узел hash_set, который, в свою очередь, сохраняет его связанный дескриптор контейнер. Можно использовать итераторы только со связанными объектами контейнера. Итератор hash_set остается допустимым, пока его связанный узел hash_set связан с определенным hash_set. Кроме того, допустимый итератор dereferencable -- его можно использовать для доступа или изменения значения элемента он обозначает -- пока не равно end().

Стирающ или удаление элементов вызывает деструктор этого сохраненного значения. Удалить контейнер удаляются все элементы. Таким образом, тип которого контейнер элемента ссылочный класс гарантирует, что никаких элементов не переживают контейнер. Однако стоит отметить, что контейнер дескрипторов делает not уничтожает его элементы.

Требования

Заголовок:<cliext/hash_set>

Пространство имен: cliext

См. также

Ссылки

hash_map (STL/CLR)

hash_set (STL/CLR)

hash_set (STL/CLR)

map (STL/CLR)

set (STL/CLR)

set (STL/CLR)

set (STL/CLR)

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

Справочник по библиотеке STL/CLR