hash_multimap Class
[!UWAGA]
Ten interfejs API jest nieaktualny.Alternatywą jest unordered_multimap Class.
Hash_multimap klasy pojemnika jest rozszerzeniem standardowa biblioteka szablonów i jest używany do przechowywania i szybkiego pobierania danych z kolekcji, w której każdy element jest para, których wartość nie musi być unikatowy klucz sortowania i wartości skojarzonych danych.
template <
class Key,
class Type,
class Traits=hash_compare<Key, less<Key> >,
class Allocator=allocator<pair <const Key, Type> >
>
class hash_multimap
Parametry
Klucz
Typ klucza danych mają być przechowywane w hash_multimap.Typ
Typ elementu danych mają być przechowywane w hash_multimap.Traits
Typ, który obejmuje dwa obiekty funkcja jednej klasy cechy to jest w stanie porównać dwie 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_multimap.Ten argument jest opcjonalny, a wartość domyślna to programu przydzielania*<*pair *<*const klucz, wpisz > >.
Uwagi
Hash_multimap 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.
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.
Wiele, ponieważ jego elementy nie trzeba mieć unikatowe klucze, tak, że jedna wartość klucza może mieć wiele wartości danych element skojarzony z nim.
Para kontenera zespolone, ponieważ jego wartości elementów różnią się od jego wartości klucza.
Klasa szablonu, 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ść; Pomyślne mieszania wykonuje wstawień, usunięć i wyszukuje w stałej Średni czas w porównaniu czas proporcjonalna do logarytmu liczby elementów w pojemniku do sortowania technik.Wartość elementu w hash_multimap, ale nie jego skojarzonej wartości klucza, można zmieniać bezpośrednio.Zamiast tego wartości skojarzone z stare elementy muszą być usunięte i nowe wartości kluczy związanych z nowe elementy wstawione.
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_multimap powinna być zespolone kontener wyboru, gdy spełnione są warunki z wartości otrzymanych z klawiszy przez aplikację.Model dla tego typu konstrukcji jest uporządkowaną listę słów kluczowych z wartości ciąg skojarzone, zapewniając, powiedzmy, definicje, gdzie słowa były nie zawsze jednoznacznie zdefiniowane.Jeśli zamiast tego słowa kluczowe zostały zdefiniowane jednoznacznie tak, że klucze były unikatowe, hash_map będzie kontener wyboru.Jeśli z drugiej strony, były przechowywane tylko listę słów, hash_set będzie poprawny kontenera.Jeżeli zezwolono wielu wystąpień słowa, hash_multiset będzie struktury odpowiedni kontener.
Hash_multimap zamówień sekwencja kontroluje wywołując przechowywane mieszania cechy obiektu 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 _Key typu klucz, wywołanie cechy(_Key)* 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 nierównoważne.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_multimap 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_multimap jest sterująca dwukierunkowe, ale funkcje wstawić i hash_multimap 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_multimap 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_multimap funkcjonalności, ale wystarczy, aby móc mówić sensownie o szereg Iteratory [_First, _Last) w kontekście funkcji elementów członkowskich.
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.
Konstruktory
Tworzy listę z określonego rozmiaru lub z elementami określonej wartości lub ze szczególnym allocator lub jako kopię inne hash_multimap. |
Definicje TypeDef
Typ, który reprezentuje allocator klasy dla hash_multimap obiektu. |
|
Typ, który zapewnia sterująca dwukierunkowe, które można odczytać const element w hash_multimap. |
|
Typ, który zawiera wskaźnik do const element w hash_multimap. |
|
Typ, który zawiera odwołanie do const element przechowywane w hash_multimap do odczytu i wykonywania const operacji. |
|
Typ, który zapewnia sterująca dwukierunkowe, które można odczytać żadnych const element w hash_multimap. |
|
Typ całkowita, które mogą być używane do reprezentowania liczbę elementów hash_multimap w zakresie między elementami wskazywanej przez Iteratory. |
|
Typ, zapewniająca sterująca dwukierunkowy mogą odczytywać lub modyfikować każdy element w hash_multimap. |
|
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_multimap. |
|
Typ, który opisuje klucz sortowania obiektu, który stanowi każdy element hash_multimap. |
|
Typ, który reprezentuje typ danych przechowywanych w hash_multimap. |
|
Typ, który zawiera wskaźnik do elementu w hash_multimap. |
|
Typ, który zawiera odwołanie do elementu przechowywane w hash_multimap. |
|
Typ, zapewniająca sterująca dwukierunkowy mogą odczytywać lub modyfikować element odwrócone hash_multimap. |
|
Typu Liczba całkowita bez znaku, który może reprezentować liczbę elementów w hash_multimap. |
|
Typ, który zawiera obiekt funkcji, które można porównać dwa elementy jako klucze sortowania do określenia ich względną kolejność, w hash_multimap. |
Funkcje składowe
Zwraca iterację adresowania pierwszy element w hash_multimap. |
|
Zwraca wartość sterująca const, adresowanie pierwszy element w hash_multimap. |
|
Zwraca wartość sterująca const, że adresy lokalizacji, zastępując ostatni element w hash_multimap. |
|
Usuwa wszystkie elementy hash_multimap. |
|
Zwraca liczbę elementów w hash_multimap której klucz pasuje do klucza z określonego przez parametr. |
|
Zwraca wartość sterująca const, pierwszym elementem odwrócone adresowania hash_multimap. |
|
Zwraca wartość sterująca const, że adresy lokalizacji, zastępując ostatniego elementu w odwrócone hash_multimap. |
|
Wstawia element w miejscu, w hash_multimap. |
|
Wstawia element w miejscu, w hash_multimap, z podpowiedzi położenia. |
|
Testy, jeśli hash_multimap jest pusty. |
|
Zwraca iteratora, że adresy lokalizacji, zastępując ostatni element w hash_multimap. |
|
Zwraca iteratora, że adresy lokalizacji, zastępując ostatni element w hash_multimap. |
|
Usuwa element lub szereg elementów w hash_multimap od określonej pozycji |
|
Zwraca iterację adresowania położenie elementu w hash_multimap która ma klucz równoważne do określonego klucza. |
|
Zwraca kopię allocator używane do konstruowania obiektu hash_multimap. |
|
Wstawia element lub szereg elementów do hash_multimap w określonej pozycji. |
|
Pobiera kopię obiektu porównania, służący do kolejności kluczy w hash_multimap. |
|
Zwraca iterację do pierwszego elementu w hash_multimap , że przy użyciu klucza wartość która jest równa lub większa niż w przypadku określonego klucza. |
|
Zwraca maksymalną długość hash_multimap. |
|
Zwraca iterację adresowania pierwszym elementem odwrócone hash_multimap. |
|
Zwraca iteratora, że adresy lokalizacji, zastępując ostatniego elementu w odwrócone hash_multimap. |
|
Określa nowy rozmiar dla hash_multimap. |
|
Wymiany elementów dwóch hash_multimaps. |
|
Zwraca iterację do pierwszego elementu w hash_multimap , że przy użyciu klucza wartość która jest większa od określonego klucza. |
|
Pobiera kopię obiektu porównania, służący do wartości elementu zamówienia w hash_multimap. |
Podmioty gospodarcze
Zastępuje elementy hash_multimap z kopią innego hash_multimap. |
Wymagania
Nagłówek: <hash_map>
Przestrzeń nazw: stdext
Zobacz też
Informacje
Bezpieczeństwo wątków w standardowa biblioteka języka C++
Standardowa biblioteka szablonu
Inne zasoby
<hash_map> Członkowie
hash_multimap członkowie