Udostępnij za pośrednictwem


hash_multiset (STL/CLR)

Klasa szablon opisuje obiekt, który kontroluje różnicowania długość sekwencji elementów z dostępem do dwukierunkowego.Użyj kontener hash_multiset do zarządzania sekwencja elementów jako tabeli mieszania, każdy wpis tabeli przechowywania dwukierunkowy połączone listy węzłów i każdy węzeł przechowywania jeden element.Wartość każdego elementu jest używana jako klucz do ustalania kolejności sekwencji.

W polu Opis poniżej GValue jest taka sama jak GKey, który z kolei jest taka sama, jak Key o ile ten ostatni typ odwołania, w którym to przypadku jest Key^.

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

Parametry

  • Klucz
    Typ elementu w kontrolowanej sekwencji kluczowym składnikiem.

Elementy członkowskie

Definicja typu

Opis

hash_multiset::const_iterator (STL/CLR)

Typ iteratora stałego dla kontrolowanej sekwencji.

hash_multiset::const_reference (STL/CLR)

Typ stałego odwołania do elementu.

hash_multiset::const_reverse_iterator (STL/CLR)

Typ stałej sterująca wstecznego w kontrolowanej sekwencji.

hash_multiset::difference_type (STL/CLR)

Typ (ewentualnie podpisanego) odległość między dwoma elementami.

hash_multiset::generic_container (STL/CLR)

Typ rodzajowy interfejs dla kontenera.

hash_multiset::generic_iterator (STL/CLR)

Typ iteratora rodzajowy interfejsów dla kontenera.

hash_multiset::generic_reverse_iterator (STL/CLR)

Typ wstecznego sterująca rodzajowy interfejsów dla kontenera.

hash_multiset::generic_value (STL/CLR)

Typ elementu dla rodzajowego interfejsu dla kontenera.

hash_multiset::hasher (STL/CLR)

Pełnomocnik mieszania dla kluczy.

hash_multiset::iterator (STL/CLR)

Typ iteratora dla kontrolowanej sekwencji.

hash_multiset::key_compare (STL/CLR)

Zamawianie delegat na dwa klucze.

hash_multiset::key_type (STL/CLR)

Typ klucza sortowania.

hash_multiset::reference (STL/CLR)

Typ odwołania do elementu.

hash_multiset::reverse_iterator (STL/CLR)

Typ wstecznego sterująca w kontrolowanej sekwencji.

hash_multiset::size_type (STL/CLR)

Typ (ujemna) odległości między dwoma elementami.

hash_multiset::value_compare (STL/CLR)

Zamawianie delegowanego dla dwóch wartości elementu.

hash_multiset::value_type (STL/CLR)

Typ elementu.

Funkcji członka

Opis

hash_multiset::begin (STL/CLR)

Określa początek kontrolowanej sekwencji.

hash_multiset::bucket_count (STL/CLR)

Zlicza liczbę segmentów.

hash_multiset::clear (STL/CLR)

Usuwa wszystkie elementy.

hash_multiset::count (STL/CLR)

Zlicza elementy pasujące do określonego klucza.

hash_multiset::empty (STL/CLR)

Badania, czy elementy nie są obecnie.

hash_multiset::end (STL/CLR)

Określa koniec kontrolowanej sekwencji.

hash_multiset::equal_range (STL/CLR)

Wyszukuje zakresu, który odpowiada określonym kluczem.

hash_multiset::erase (STL/CLR)

Usuwa elementy na określonych pozycjach.

hash_multiset::find (STL/CLR)

Wyszukuje elementem, który pasuje do określonego klucza.

hash_multiset::hash_delegate (STL/CLR)

Kopiuje delegowanego mieszania dla kluczy.

hash_multiset::hash_multiset (STL/CLR)

Konstruuje obiekt kontenera.

hash_multiset::insert (STL/CLR)

Dodaje elementy.

hash_multiset::key_comp (STL/CLR)

Kopiuje zamawiania delegat na dwa klucze.

hash_multiset::load_factor (STL/CLR)

Oblicza średnią elementów na Wiadro.

hash_multiset::lower_bound (STL/CLR)

Znajduje początek zakresu, który odpowiada określonym kluczem.

hash_multiset::make_value (STL/CLR)

Konstrukcje obiektu wartości.

hash_multiset::max_load_factor (STL/CLR)

Pobiera lub ustawia maksymalną elementów na Wiadro.

hash_multiset::rbegin (STL/CLR)

Określa początek odwrócone kontrolowanej sekwencji.

hash_multiset::rehash (STL/CLR)

Przebudowuje tabeli mieszania.

hash_multiset::rend (STL/CLR)

Określa koniec odwrócone kontrolowanej sekwencji.

hash_multiset::size (STL/CLR)

Oblicza liczbę elementów.

hash_multiset::swap (STL/CLR)

Zamienia zawartość dwa kontenery.

hash_multiset::to_array (STL/CLR)

Kopiuje kontrolowanej sekwencji do nowej tablicy.

hash_multiset::upper_bound (STL/CLR)

Znajduje koniec zakresu, który odpowiada określonym kluczem.

hash_multiset::value_comp (STL/CLR)

Kopiuje zamawiania delegowanego dla dwóch wartości elementu.

Operator

Opis

hash_multiset::operator= (STL/CLR)

Zastępuje kontrolowanej sekwencji.

Interfejsy

Interfejs

Opis

ICloneable

Duplikowanie obiektów.

IEnumerable

Sekwencji przez elementy.

ICollection

Obsługa grupy elementów.

IEnumerable

Sekwencji przez elementy maszynowy.

ICollection

Obsługa grupy elementów maszynowy.

IHash<klucz, wartość>

Obsługa rodzajowy kontenera.

Uwagi

Obiekt przydziela i zwalnia pamięci masowej w sekwencji, które kontroluje jako pojedynczych węzłów w połączonej listy dwukierunkowego.Szybkość dostępu, obiekt zachowuje Różnicowanie długości tablicy wskaźników na liście (Tabela mieszania), skuteczne zarządzanie całą listę jako sekwencja podlisty, lub Wiadra.Wstawia elementy na pojemniku, który utrzymuje zamówione przez zmianę łączy między węzłami nigdy, kopiując zawartość z jednego węzła do innego.Oznacza to można wstawiać i usunąć elementy swobodnie bez pozostałych pierwiastków przeszkadzających.

Obiekt zamówienia każdego segmentu kontroluje przez wywołanie obiektu delegowanego przechowywanych typu hash_set::key_compare (STL/CLR).Można okreolić obiekt przechowywanych delegata podczas konstruowania hash_set; Jeśli określisz żadnego obiektu delegowanego, wartością domyślną jest porównanie operator<=(key_type, key_type).

Dostęp do obiektu delegowanego przechowywanych przez wywołanie funkcji członka hash_set::key_comp (STL/CLR)().Obiektu delegowanego należy zdefiniować zamawianie równoważne między kluczami typu hash_set::key_type (STL/CLR).Oznacza to, że dla dwóch dowolnych kluczy X i Y:

key_comp()(X, Y)Zwraca wartość Boolean samego wyniku przy każdym wywołaniu.

Jeśli key_comp()(X, Y) && key_comp()(Y, X) ma wartość true, a następnie X i Y mówi się, że zamawianie równoważne.

Wszelkie zamawiania regułę, która zachowuje się jak operator<=(key_type, key_type), operator>=(key_type, key_type) lub operator==(key_type, key_type) definiuje kolejność eqivalent.

Uwaga tylko zapewnia kontener wówczas, że elementy której klucze mają zamawianie równoważne (i które mieszania na tę samą wartość całkowitą) są sąsiadujące w pojemniku.W odróżnieniu od szablonu klasy hash_set (STL/CLR), obiekt klasy szablon hash_multiset nie wymaga, aby były unikatowe klucze dla wszystkich elementów. (Dwóch lub więcej klawiszy może mieć zamawianie równoważne).

Obiekt Określa, jakiego Wiadra powinna zawierać dany klucz sortowania przez wywołanie obiektu delegowanego przechowywanych typu hash_set::hasher (STL/CLR).Dostęp do przechowywanej obiektu przez wywołanie funkcji członka hash_set::hash_delegate (STL/CLR)() uzyskać wartość całkowitą, która jest zależna od wartości klucza.Można okreolić obiekt przechowywanych delegata podczas konstruowania hash_set; Jeśli określisz żadnego obiektu delegowanego, wartością domyślną jest funkcja System::Object::hash_value(key_type).Oznacza to, że dla żadnych kluczy X i Y:

hash_delegate()(X)zwraca ten sam wynik całkowitą przy każdym wywołaniu.

Jeśli X i Y mają zamawianie równoważne, następnie hash_delegate()(X) powinien zwracają ten sam wynik całkowitą jako hash_delegate()(Y).

Każdy element służy zarówno jako klucz i wartość.Sekwencja jest reprezentowana w sposób, który pozwala na wyszukiwanie, wstawiania i usuwania dowolnego elementu z wielu operacji, która jest niezależna od liczby elementów w sekwencji (stały czas)--co najmniej w najlepszym przypadku.Ponadto Wstawianie elementu powoduje unieważnienie nie Iteratory i usunięcie elementu unieważnienie tylko Iteratory, które wskazuje na element usunięty.

Jeśli mieszanych wartości nie są równomiernie rozłożone, jednak może przerodzić tabeli mieszania.W skrajnych--dla funkcji skrótu, który zawsze zwraca taką samą wartość--odnośników, wstawiania i usuwania są proporcjonalne do liczby elementów w sekwencji (liniowy czasu).Kontener stara się wybrać funkcję mieszania uzasadnione, Wiadro średniej wielkości, a rozmiar tabeli mieszania (całkowita liczba segmentów), ale można zastąpić wybrane lub wszystkie z tych opcji.Na przykład, zobacz funkcje hash_set::max_load_factor (STL/CLR) i hash_set::rehash (STL/CLR).

Hash_multiset obsługuje Iteratory dwukierunkowe, co oznacza, że można przejść do sąsiednich elementów, biorąc pod uwagę iterację opisująca elementu w kontrolowanej sekwencji.Specjalne węzła głównego odpowiada sterująca zwrócone przez hash_multiset::end (STL/CLR)().To sterująca do osiągnięcia ostatniego elementu w kontrolowanej sekwencji można zmniejszyć, jeśli jest obecna.Mógł zwiększyć wartość sterująca hash_multiset, aby dotrzeć do węzła głównego, a następnie porównaj równa end().Ale nie cofnięcia odwołania sterująca zwrócone przez end().

Należy zauważyć, że nie może odwoływać się do elementu hash_multiset bezpośrednio biorąc pod uwagę jego pozycję numeryczny--wymagającej sterująca dostępie losowym.

Sterująca hash_multiset przechowuje dojście do jego hash_multiset skojarzony węzeł, który z kolei przechowuje dojście do jego skojarzony kontenera.Iteratory można użyć tylko z ich kontenera skojarzone obiekty.Sterująca hash_multiset zachowuje ważność tak długo, jak długo jego węzła hash_multiset skojarzony jest skojarzony z niektórych hash_multiset.Ponadto, prawidłowe iteratora jest dereferencable--służy do dostępu lub zmienić wartość elementu wyznacza ona--tak długo, jak nie jest równa end().

Wymazywanie lub usunięcie elementu wywołuje destruktor dla swojej przechowywanej wartości.Niszczenie kontenera powoduje wymazanie wszystkich elementów.W efekcie kontenera, którego typ elementu jest klasą ref daje pewność, że elementy nie przeżyje kontenera.Należy jednak zauważyć, że kontener uchwyty nie not zniszczyć jego elementów.

Wymagania

Nagłówek:<cliext/hash_set>

Przestrzeń nazw: cliext

Zobacz też

Informacje

hash_map (STL/CLR)

hash_multiset (STL/CLR)

hash_set (STL/CLR)

map (STL/CLR)

multiset (STL/CLR)

multiset (STL/CLR)

set (STL/CLR)

Inne zasoby

Odwołanie do biblioteki STL/CLR