hash_map (STL/CLR)
Klasa szablonu opisuje obiekt, który kontroluje różne długości sekwencji elementów dwukierunkowy dostępem.Użyj kontenera 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 i zmapowane wartości, która przechodzi dla jazdy.
W opisie poniżej GValue jest taka sama, jak:
Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>
w przypadku gdy:
GKeyjest taka sama, jak Key jest typem odwołania, w którym to przypadku jestKey^
GMappedjest taka sama, jak Mapped jest typem 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 klucza składnika elementu w kontrolowanej sekwencji.Mapowane
Typ dodatkowego komponentu element w kontrolowanej sekwencji.
Członkowie
Definicja typu |
Opis |
---|---|
Typ stałej iteratora kontrolowanych sekwencji numerów. |
|
Typ stałej odwołanie do elementu. |
|
Typ stałej iteratora wstecznego kontrolowanych sekwencji numerów. |
|
Typ (ewentualnie podpisanego) odległość między dwoma elementami. |
|
Typ rodzajowy interfejs dla kontenera. |
|
Typ iterację rodzajowy interfejs dla kontenera. |
|
Typ wstecznego iteratora rodzajowy interfejs dla kontenera. |
|
Typ elementu dla rodzajowego interfejsu dla kontenera. |
|
Pełnomocnik mieszania klucza. |
|
Typ iterację kontrolowanych sekwencji numerów. |
|
Zamawiania obiektu delegowanego dla dwóch klawiszy. |
|
Typ sortowania klucza. |
|
Typ zmapowane wartości skojarzonych z poszczególnymi kluczami. |
|
Typ odwołania do elementu. |
|
Typ wstecznego iteratora kontrolowanych sekwencji numerów. |
|
Typ (ujemna) odległość między dwoma elementami. |
|
Zamawiania obiektu delegowanego dla dwóch wartości elementu. |
|
Typ elementu. |
Funkcja Członkowskie |
Opis |
---|---|
Określa początek kontrolowanych 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 sekwencji kontrolowane. |
|
Wyszukuje zakres, który pasuje do określonego klucza. |
|
Usuwa elementy na określonych pozycjach. |
|
Wyszukuje element, który pasuje do określonego klucza. |
|
Kopiuje mieszania obiektu delegowanego dla kluczy. |
|
Tworzy obiekt kontenera. |
|
Dodaje elementy. |
|
Kopiuje zamawiania obiektu delegowanego dla dwóch klawiszy. |
|
Oblicza średnią elementów na Wiadro z farbą. |
|
Znajduje początek zakresu, który pasuje do określonego klucza. |
|
Tworzy obiekt wartość. |
|
Pobiera lub ustawia maksymalną elementów na Wiadro z farbą. |
|
Określa początek odwróconą kolejność kontrolowanych. |
|
Przebudowuje tabeli mieszania. |
|
Określa koniec odwróconą kolejność kontrolowanych. |
|
Zlicza liczbę elementów. |
|
Zamienia zawartość dwóch kontenerów. |
|
Kopiuje kontrolowanych sekwencji nowej tablicy. |
|
Stwierdza koniec zakresu, który pasuje do określonego klucza. |
|
Kopiuje zamawiania obiektu delegowanego dla dwóch wartości elementu. |
Operator |
Opis |
---|---|
Zastępuje kontrolowanych sekwencji. |
|
Mapuje klucza skojarzonej wartości mapowane. |
Interfejsy
Interfejs |
Opis |
---|---|
Duplikowanie obiektów. |
|
Sekwencji za pomocą elementów. |
|
Zachować grupy elementów. |
|
Sekwencji poprzez maszynowy elementów. |
|
Zachować grupy elementów określonego typu. |
|
Zachować grupy {klucz, wartość} pary. |
|
IHash < klucz, wartość > |
Utrzymanie kontenerem. |
Uwagi
Obiekt przydziela i zwalnia przechowywania sekwencji numerów, które kontroluje jako poszczególnych węzłów w połączonej listy dwukierunkowego.Szybkość dostępu, obiekt zachowuje tablica długość różnych wskaźników do listy (tabeli mieszania), skuteczne zarządzanie całą listę jako sekwencja podlisty, lub pakiety w ramach Agreement.Wstawia elementy na Wiadro z farbą, który utrzymuje zamówione przez zmienianie łączy między węzłami nigdy, kopiując zawartość jednego węzła do innego.Oznacza to, można wstawiać i usuwanie elementów swobodnie bez pozostałych pierwiastków przeszkadzających.
Obiekt zamówienia każdego segmentu kontroluje, wywołując obiektów przechowywanych delegata typu hash_set::key_compare (STL/CLR).Można określić obiekt przechowywane delegata podczas konstruowania hash_set; Jeżeli pełnomocnik żaden obiekt nie zostanie określony, domyślnie jest porównanie operator<=(key_type, key_type).
Dostęp do obiektu pełnomocnik przechowywanych przez wywołanie funkcji składowej hash_set::key_comp (STL/CLR)().Obiekt pełnomocnik należy zdefiniować równoważne kolejności kluczy typu hash_set::key_type (STL/CLR).Oznacza to dla dowolnego z dwóch kluczy X i Y:
key_comp()(X, Y)Zwraca wartość Boolean samego spowodować przy każdym wywołaniu.
Jeśli key_comp()(X, Y) && key_comp()(Y, X) ma wartość true, następnie X i Y są wywierający równoważne zamawiania.
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.
Należy zauważyć, że kontener zapewni tylko elementy której klucze mają równoważne zamawiania (i które skrótu na wartość Liczba całkowita) sąsiadujących w ramach Wiadro z farbą.W odróżnieniu od szablonu klasy hash_multimap (STL/CLR), obiekt klasy hash_map zapewnia, że klucze dla wszystkich elementów są unikatowe.(Dwóch kluczy jest równoważne zamawiania).
Obiekt określa segmentu, które powinny zawierać dany klucz sortowania, wywołując obiektów przechowywanych delegata typu hash_set::hasher (STL/CLR).Dostęp ten obiekt przechowywanych przez wywołanie funkcji składowej hash_set::hash_delegate (STL/CLR)() do uzyskania wartość całkowitą, która zależy od wartości klucza.Można określić obiekt przechowywane delegata podczas konstruowania hash_set; Jeśli zostanie określony żaden obiekt pełnomocnika, wartością domyślną jest funkcja System::Object::hash_value(key_type).Oznacza to dla klawiszy, X i Y:
hash_delegate()(X)zwraca ten sam wynik całkowitą dla każdego wywołania.
Jeśli X i Y mają zamawiania równoważne, następnie hash_delegate()(X) powinna zostać zwrócona liczba całkowita sam wynik, jak hash_delegate()(Y).
Każdy element zawiera oddzielne klucz i wartość mapowane.Sekwencja jest reprezentowana w sposób, który pozwala na wyszukiwanie, wstawiania i usuwania dowolnego elementu z liczbą operacji jest niezależny od liczby elementów w sekwencji (czas stałej)--co najmniej w najlepszym razie.Ponadto Wstawianie elementu unieważnia Iteratory nie i usuwanie elementu unieważnia tylko Iteratory, które wskazują na usunięto element.
Jeśli wartości mieszania nie są dystrybuowane równomiernie, jednak można zdegenerowały tabeli mieszania.W skrajnych--dla funkcji mieszania, który zawsze zwraca wartość samą--odnośników, wstawiania i usuwania są proporcjonalne do liczby elementów w sekwencji (liniowy czasu).Kontener usiłują wybierz funkcję mieszania uzasadnione, rozmiar segmentu średniej i 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 krok do sąsiadujących elementów podanych iterację, wyznaczający element w kontrolowanej sekwencji.Specjalne węzła głównego odpowiada iteratora, zwrócony przez hash_map::end (STL/CLR)().Można zmniejszyć iteratora to osiągać ostatni element w sekwencji kontrolowanych, jeśli jest obecna.Można zwiększyć iteratora hash_map do węzła głównego, a następnie będzie porównaj równa end().Ale nie nieprawidłowego iteratora, zwrócony przez end().
Należy zauważyć, że nie może odwoływać się do elementu hash_map bezpośrednio podanych pozycji numerycznych--wymagającej z iteratora losowy dostęp.
Iteratora hash_map przechowuje dojście do węzła skojarzone hash_map, która z kolei przechowuje dojście do jego kontenera skojarzone.Iteratory służy tylko z ich obiekty skojarzone kontenera.Iteratora hash_map zachowuje ważność tak długo, jak długo jego hash_map skojarzony węzeł jest skojarzony z niektóre hash_map.Ponadto ważne iteratora jest dereferencable--służy do dostępu lub zmienić wartość elementu ustanowi--tak długo, jak nie jest równa end().
Wymazywanie lub usunięcie elementu wymaga destruktor jego wartości przechowywanej.Niszczenie kontenera powoduje wymazanie wszystkich elementów.W ten sposób kontener, którego typ elementu jest klasa ref zapewnia żadnych elementów przetrwać dłużej niż kontenera.Należy jednak zauważyć, że kontener uchwyty nie not zniszczyć jego elementów.
Wymagania
Nagłówek: < cliext/hash_map >
Obszar nazw: cliext