hash_map (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_map 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.Element składa się z kluczem do ustalania kolejności sekwencji, a wartość zamapowanego idzie na jazdę.
W polu Opis poniżej GValue jest taka sama, jak:
Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>
gdzie:
GKeyjest taka sama jak Key o ile ten ostatni typ odwołania, w którym to przypadku jestKey^
GMappedjest taka sama jak Mapped o ile ten ostatni typ odwołania, w którym to przypadku jestMapped^
template<typename Key,
typename Mapped>
ref class hash_map
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
System::Collections::Generic::IDictionary<Gkey, GMapped>,
Microsoft::VisualC::StlClr::IHash<Gkey, GValue>
{ ..... };
Parametry
Klucz
Typ elementu w kontrolowanej sekwencji kluczowym składnikiem.Mapowane
Typ składnika dodatkowego elementu w kontrolowanej sekwencji.
Elementy członkowskie
Definicja typu |
Opis |
---|---|
Typ iteratora stałego dla kontrolowanej sekwencji. |
|
Typ stałego odwołania do elementu. |
|
Typ stałej sterująca wstecznego w kontrolowanej sekwencji. |
|
Typ (ewentualnie podpisanego) odległość między dwoma elementami. |
|
Typ rodzajowy interfejs dla kontenera. |
|
Typ iteratora rodzajowy interfejsów dla kontenera. |
|
Typ wstecznego sterująca rodzajowy interfejsów dla kontenera. |
|
Typ elementu dla rodzajowego interfejsu dla kontenera. |
|
Pełnomocnik mieszania dla kluczy. |
|
Typ iteratora dla kontrolowanej sekwencji. |
|
Zamawianie delegat na dwa klucze. |
|
Typ klucza sortowania. |
|
Typ mapowane wartości skojarzonych z poszczególnymi kluczami. |
|
Typ odwołania do elementu. |
|
Typ wstecznego sterująca w kontrolowanej sekwencji. |
|
Typ (ujemna) odległości między dwoma elementami. |
|
Zamawianie delegowanego dla dwóch wartości elementu. |
|
Typ elementu. |
Funkcji członka |
Opis |
---|---|
Określa początek kontrolowanej sekwencji. |
|
Zlicza liczbę segmentów. |
|
Usuwa wszystkie elementy. |
|
Zlicza elementy pasujące do określonego klucza. |
|
Badania, czy elementy nie są obecnie. |
|
Określa koniec kontrolowanej sekwencji. |
|
Wyszukuje zakresu, który odpowiada określonym kluczem. |
|
Usuwa elementy na określonych pozycjach. |
|
Wyszukuje elementem, który pasuje do określonego klucza. |
|
Kopiuje delegowanego mieszania dla kluczy. |
|
Konstruuje obiekt kontenera. |
|
Dodaje elementy. |
|
Kopiuje zamawiania delegat na dwa klucze. |
|
Oblicza średnią elementów na Wiadro. |
|
Znajduje początek zakresu, który odpowiada określonym kluczem. |
|
Konstrukcje obiektu wartości. |
|
Pobiera lub ustawia maksymalną elementów na Wiadro. |
|
Określa początek odwrócone kontrolowanej sekwencji. |
|
Przebudowuje tabeli mieszania. |
|
Określa koniec odwrócone kontrolowanej sekwencji. |
|
Oblicza liczbę elementów. |
|
Zamienia zawartość dwa kontenery. |
|
Kopiuje kontrolowanej sekwencji do nowej tablicy. |
|
Znajduje koniec zakresu, który odpowiada określonym kluczem. |
|
Kopiuje zamawiania delegowanego dla dwóch wartości elementu. |
Operator |
Opis |
---|---|
Zastępuje kontrolowanej sekwencji. |
|
Mapy klucz do skojarzonej wartości mapowanych. |
Interfejsy
Interfejs |
Opis |
---|---|
Duplikowanie obiektów. |
|
Sekwencji przez elementy. |
|
Obsługa grupy elementów. |
|
Sekwencji przez elementy maszynowy. |
|
Obsługa grupy elementów maszynowy. |
|
Obsługa grup {klucz, wartość} pary. |
|
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_multimap (STL/CLR), obiekt klasy szablon hash_map zapewnia, że klucze dla wszystkich elementów są unikatowe. (Nie dwa klucze mają 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 zawiera osobny klucz i wartość zamapowanego.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_map 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_map::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_map, 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_map bezpośrednio biorąc pod uwagę jego pozycję numeryczny--wymagającej sterująca dostępie losowym.
Sterująca hash_map przechowuje dojście do jego hash_map 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_map zachowuje ważność tak długo, jak długo jego węzła hash_map skojarzony jest skojarzony z niektórych hash_map.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_map>
Przestrzeń nazw: cliext