Udostępnij za pośrednictwem


hash_multiset Class

[!UWAGA]

Ten interfejs API jest nieaktualny.Alternatywą jest unordered_multiset Class.

Hash_multiset klasy pojemnika jest rozszerzeniem standardowa biblioteka szablonów i jest używany do przechowywania i szybkiego pobierania danych z kolekcji, w którym wartości elementów zawartych służyć jako wartości klucza i nie muszą być unikatowe.

template <
   class Key, 
   class Traits=hash_compare<Key, less<Key> >, 
   class Allocator=allocator<Key> 
>
class hash_multiset

Parametry

  • Klucz
    Typ elementu danych mają być przechowywane w hash_multiset.

  • Traits
    Typ, który obejmuje dwa obiekty funkcji, jeden z klasy porównać czyli predykatu dwuelementowego zdolne do porównywania dwóch wartości elementu jako klucze sortowania do określenia ich względna kolejność i funkcją mieszania, który jest predykatu jednoelementowego mapowanie wartości kluczowych elementów do liczb całkowitych bez znaku typu size_t.Ten argument jest opcjonalny i hash_compare*< klucz,* mniej*<Key> >* jest wartością domyślną.

  • Allocator
    Typ, który reprezentuje obiekt przydzielania przechowywanych, który zawiera szczegółowe informacje dotyczące alokacji i dezalokacji pamięci hash_multiset.Ten argument jest opcjonalny, a wartość domyślna to programu przydzielania*<Key>.*

Uwagi

Hash_multiset jest:

  • Zespolone kontenera, w którym kontener zmiennej wielkości, który obsługuje na wydajne wyszukiwanie wartości elementów na podstawie skojarzony klucz wartości.Dalej dlatego proste kontenera zespolone wartości jego elementów są jego wartości klucza.

  • Odwracalne, ponieważ zapewnia on sterująca dwukierunkowy dostępu jego elementów.

  • Mieszany, ponieważ jego elementy są grupowane w wiadrach na podstawie wartości stosowane do wartości kluczowych elementów funkcji mieszania.

  • Unikatowe w tym sensie, że każdy z jej elementów musi mieć unikatowy klucz.Ponieważ hash_multiset jest również proste kontenera zespolone, jego elementy są również unikalne.

  • Klasa szablon ponieważ zapewnia funkcjonalność jest rodzajowy i tak niezależnie od określonego typu danych zawartych jako elementów lub klucze.Typy danych przeznaczonych do elementów i klucze natomiast określono jako parametry szablonu klasy oraz porównania funkcji i przydzielania.

Główną zaletą mieszania nad sortowania jest większa wydajność: Sukces mieszania wykonuje wstawień, usunięć i stwierdza, w stałej Średni czas w porównaniu czas proporcjonalna do logarytmu liczby elementów w pojemniku do sortowania technik.Nie można bezpośrednio zmienić wartość elementu w zestawie.Zamiast tego należy usunąć stare wartości i wstawianie elementów z nowymi wartościami.

Wybór typu kontener powinny być ogólnie na podstawie typu wyszukiwania i wstawianie wymagane przez aplikację.Kontenery asocjacyjne mieszanych są zoptymalizowane pod kątem operacji wyszukiwania, wstawiania i usuwania.Funkcje Państwa, które jawnie obsługuje operacje te są skuteczne, gdy używana z funkcją mieszania dobrze zaprojektowane, wykonywania ich w czasie, który jest średnio stała i nie zależy od liczby elementów w kontenerze.Funkcja mieszania dobrze produkuje równomierny rozkład mieszanych wartości i minimalizuje liczbę kolizji, gdzie mówi kolizji występuje wówczas, gdy różne wartości klucza są mapowane do tej samej mieszanych wartości.W najgorszym przypadku, najgorszego funkcją mieszania możliwe liczbę operacji jest proporcjonalna do liczby elementów w kolejności (liniowy czas).

Hash_multiset powinny być zespolone kontener wyboru, gdy warunki z wartości otrzymanych z klawiszy spełnia przez aplikację.Elementy hash_multiset może być wiele i służyć jako własne klucze sortowania, więc nie są unikatowe klucze.Model dla tego typu konstrukcji jest uporządkowana lista, słowa powiedzieć, w których wyrazy może występować więcej niż raz.Wiele wystąpień słów pozbawiona, wtedy byłby hash_set struktury odpowiedni kontener.Jeśli unikatowe definicje zostały dołączone jako wartości do listy unikatowych słów kluczowych, hash_map będzie odpowiednią strukturę zawierają dane.Jeśli zamiast definicje nie były unikatowe, hash_multimap będzie kontener wyboru.

Hash_multiset zamówień sekwencja kontroluje przez wywołanie obiektu cech przechowywane mieszania typu value_compare.Ten obiekt przechowywane mogą być dostępne poprzez wywołanie funkcji członka key_comp.Obiekt funkcji musi zachowywać się taki sam, jak obiekt klasy hash_compare*< klucz,* mniej*<Key> >.* W szczególności dla wszystkich wartości klucz typu klucz, wywołanie cechę(klucz) daje w wyniku rozkład wartości typu size_t.

Ogólnie rzecz biorąc, elementy muszą być jedynie mniej niż porównywalne do ustanowienia tego zamówienia: tak, że biorąc pod uwagę wszelkie dwóch elementów, może zostać stwierdzone, że są one równoważne (w tym sensie, że nie jest mniejsza niż inne) albo jednym jest mniejsza niż inne.Powoduje to zamawianie między elementami nonequivalent.Na bardziej techniczne notatki funkcja porównanie jest predykatu dwuelementowego wywołujące ścisłe słaby zamawiania w sensie matematycznych standard.Predykatu dwuelementowego f(x,y) jest obiekt funkcji, która ma dwa obiekty argument x i y i zwracana wartość true lub false.Kolejność nałożonych na hash_multiset jest słaby ścisłe zamówienia Jeśli predykatu dwuelementowego jest niezwrotne, antysymetryczna i przechodnie i jeśli równoważność jest przechodnie, gdzie dwa obiekty, x i y są zdefiniowane za równoważne, gdy zarówno f(x,y) i f(y,x) są fałszywe.Jeśli silniejsze warunku równości klucze zastępuje system równoważności, kolejność staje się całkowita (w tym sensie, że wszystkie elementy są uporządkowane w odniesieniu do siebie), a klucze dopasowane jest niedostrzegalny od siebie.

Rzeczywistej kolejności elementów w kontrolowanej sekwencji zależy od funkcji mieszania, funkcja zamawiania i bieżący rozmiar tabeli mieszania, przechowywanych w obiekcie kontenera.Bieżący rozmiar tabeli mieszania nie może określić, co w ogóle nie można przewidzieć kolejność elementów w kontrolowanej sekwencji.Wstawianie elementów unieważnia Iteratory nie i usuwanie elementów unieważnia tylko Iteratory, które w szczególności wskazywali na elementy usunięte.

Sterująca dostarczonych przez klasę hash_multiset jest sterująca dwukierunkowe, ale funkcje wstawić i hash_multiset wersje, które biorą za parametrów szablonu słabsze sterująca wejściowy, którego wymagania funkcjonalności są bardziej minimalne, niż te, gwarantowana przez klasę Iteratory dwukierunkowy.Pojęcia dotyczące różnych sterująca tworzą rodziny powiązane przez udoskonaleń w ich funkcjonalność.Każde pojęcie sterująca ma swój własny hash_multiset wymagania i algorytmów, które współpracują z nimi musi ograniczyć ich założenia do wymagań dostarczonych przez tego typu sterująca.Można przypuszczać, że iteratora wejściowych może usunąć odwołania do odwoływania się do jakiegoś obiektu, i że może być zwiększany do następnego sterująca w sekwencji.Jest to minimalny hash_multiset funkcjonalności, ale wystarczy, aby móc mówić sensownie o szereg Iteratory [_First, _Last) w kontekście funkcji elementów członkowskich klasy.

W Visual C++ .NET 2003, członkowie <hash_map> i <hash_set> pliki nagłówkowe są już w przestrzeni nazw std, ale raczej zostały przeniesione do obszaru nazw stdext.Zobacz stdext nazw uzyskać więcej informacji.

wh3627k8.collapse_all(pl-pl,VS.110).gifKonstruktory

hash_multiset

Konstrukcje hash_multiset to jest pusty lub oznacza to kopii całości lub części inne hash_multiset.

wh3627k8.collapse_all(pl-pl,VS.110).gifDefinicje TypeDef

allocator_type

Typ, który reprezentuje allocator klasy dla hash_multiset obiektu.

const_iterator

Typ, który zapewnia sterująca dwukierunkowe, które można odczytać const element w hash_multiset.

const_pointer

Typ, który zawiera wskaźnik do const element w hash_multiset.

const_reference

Typ, który zawiera odwołanie do const element przechowywane w hash_multiset do odczytu i wykonywania const operacji.

const_reverse_iterator

Typ, który zapewnia sterująca dwukierunkowe, które można odczytać żadnych const element w hash_multiset.

difference_type

Typ całkowita, która stanowi różnicę między dwoma Iteratory, które dotyczą elementów w tym samym hash_multiset.

sterująca

Typ, zapewniająca sterująca dwukierunkowy mogą odczytywać lub modyfikować każdy element w hash_multiset.

key_compare

Typ, który zawiera obiekt funkcji, które można porównać dwa klucze sortowania do określenia względnej kolejności dwa elementy w hash_multiset.

key_type

Typ, który opisuje obiekt zapisany jako element hash_set w charakterze klucza sortowania.

wskaźnik

Typ, który zawiera wskaźnik do elementu w hash_multiset.

Odwołanie

Typ, który zawiera odwołanie do elementu przechowywane w hash_multiset.

reverse_iterator

Typ, zapewniająca sterująca dwukierunkowy mogą odczytywać lub modyfikować element odwrócone hash_multiset.

size_type

Typu Liczba całkowita bez znaku, który może reprezentować liczbę elementów w hash_multiset.

value_compare

Typ, który zawiera dwa obiekty, funkcja, predykatu dwuelementowego porównania klasy, które można porównać dwie wartości elementu hash_multiset do określenia ich względna kolejność i jednoargumentowy predykat mieszania, elementy.

value_type

Typ, który opisuje obiekt zapisany jako element hash_multiset jako wartość.

wh3627k8.collapse_all(pl-pl,VS.110).gifFunkcje składowe

Rozpoczęcie

Zwraca iterację likwidującą pierwszy element w hash_multiset.

hash_multiset::cbegin

Zwraca wartość sterująca const, adresowanie pierwszy element w hash_multiset.

hash_multiset::cend

Zwraca wartość sterująca const, że adresy lokalizacji, zastępując ostatni element w hash_multiset.

Wyczyść

Usuwa wszystkie elementy hash_multiset.

Licznik

Zwraca liczbę elementów w hash_multiset której klucz pasuje do klucza z określonego przez parametr

hash_multiset::crbegin

Zwraca wartość sterująca const, pierwszym elementem odwrócone adresowania hash_multiset.

hash_multiset::crend

Zwraca wartość sterująca const, że adresy lokalizacji, zastępując ostatniego elementu w odwrócone hash_multiset.

hash_multiset::emplace

Wstawia element w miejscu, w hash_multiset.

hash_multiset::emplace_hint

Wstawia element w miejscu, w hash_multiset, z podpowiedzi położenia.

pusty

Testy, jeśli hash_multiset jest pusty.

koniec

Zwraca iteratora, że adresy lokalizacji, zastępując ostatni element w hash_multiset.

equal_range

Zwraca parę Iteratory odpowiednio do pierwszego elementu w hash_multiset przy użyciu klucza, która jest większa niż określonym kluczem i do pierwszego elementu w hash_multiset z kluczem, który jest równy lub większy niż klucz.

wymazywanie

Usuwa element lub szereg elementów w hash_multiset z określonego stanowiska lub usuwa elementy, które odpowiadają określonym kluczem.

Znajdź

Zwraca iterację adresowania położenie elementu w hash_multiset która ma klucz równoważne do określonego klucza.

get_allocator

Zwraca kopię allocator używane do konstruowania obiektu hash_multiset.

Wstaw

Wstawia element lub szereg elementów do hash_multiset.

key_comp

Pobiera kopię obiektu porównania, służący do kolejności kluczy w hash_multiset.

lower_bound

Zwraca iterację do pierwszego elementu w hash_multiset z kluczem, który jest równa lub większa od określonego klucza.

max_size

Zwraca maksymalną długość hash_multiset.

rbegin

Zwraca iterację adresowania pierwszym elementem odwrócone hash_multiset.

rend

Zwraca iteratora, że adresy lokalizacji, zastępując ostatniego elementu w odwrócone hash_multiset.

rozmiar

Zwraca liczbę elementów w hash_multiset.

zamiana

Wymiany elementów dwóch hash_multisets.

upper_bound

Zwraca iterację do pierwszego elementu w hash_multiset , przy użyciu klucza, który jest równa lub większa od określonego klucza.

value_comp

Pobiera kopię obiektu cech mieszania używany do mieszania i zamówić element wartości kluczy w hash_multiset.

wh3627k8.collapse_all(pl-pl,VS.110).gifPodmioty gospodarcze

hash_multiset::operator=

Zastępuje elementy hash_multiset z kopią innego hash_multiset.

Wymagania

Nagłówek: <hash_set>

Przestrzeń nazw: stdext

Zobacz też

Informacje

Bezpieczeństwo wątków w standardowa biblioteka języka C++

Standardowa biblioteka szablonu

Inne zasoby

<hash_set> Członkowie

hash_multiset członkowie