Opis kontenera hash_multimap
Autor: Grzegorz Mroziewicz
hash_multimap<Key, Data, HashFcn, EqualKey, Alloc>
Kontener hash_multimap jest mapą służącą do przechowywania par obiektów klucz-wartość.
Wartość klucza Key nie musi być unikalna. Kontener pozwala przechowywać wiele elementów o zadanym kluczu oraz udostępnia metody do
wyszukiwania i zliczania elementów o podanym kluczu. Wykorzystaniu funkcji mieszającej HashFcn pozwala osiągnąć lepszą złożoność czasową wyszukiwania elementów w mapie.
Typy szablonu
Nazwa | Opis |
Key | Typ klucza dla pary elementów kontenera. |
Data | Typ wartości dla pary elementów kontenera. |
HashFcn | Funkcja mieszająca ( hash<Key> ). |
EqualKey | Funktor określający czy klucze są sobie równe ( equal_to<Key> ). |
Alloc | Allokator pamięci. |
Opis metod
Kontruktory
hash_multimap() : kontruktor domyślny
hash_multimap(size_type n) : konstruktor ze wskazanie ilości pojemników mapy n
hash_multimap(size_type n, const hasher& h) : konstruktor ze wskazanie ilości pojemników mapy n i funkcji mieszającej h
hash_multimap(size_type n, const hasher& h, const key_equal& k) : konstruktor ze wskazanie ilości pojemników mapy n, funkcji mieszającej h i binarnego predykatu do porównywania kluczy k
hash_multimap(const hash_multimap&) : konstruktor kopiujący
template <class InputIterator> hash_multimap(InputIterator, InputIterator) : konstruktor inicjujący mapę kolekcją określoną przez iteratory wskazujące na jej początek i koniec
template <class InputIterator> hash_multimap(InputIterator, InputIterator, size_type n)
template <class InputIterator> hash_multimap(InputIterator, InputIterator, size_type n, const hasher& h)
template <class InputIterator> hash_multimap(InputIterator, InputIterator, size_type n, const hasher& h, const key_equal& k)
Dodawanie elementów
iterator insert(const value_type& x) - Wstawia element x
template <class InputIterator> void insert(InputIterator, InputIterator) - Wstawia kolekcję zdefiniowaną przez iteratory wskazujące na jej początek i koniec
Usuwanie elementów
void erase(iterator pos) : Usuwa element wskazany przez iterator pos
size_type erase(const key_type& k) : Usuwa elementy identyfikowane kluczem k
void erase(iterator first, iterator last) : Usuwa elementy z zakresu wskazanego iteratorami first - last
void clear() : Czyści kolekcję
Wyszukiwanie elementów
const_iterator find(const key_type& k) const : Zwraca iterator wskazujący na element o kluczu k
iterator find(const key_type& k) : Zwraca iterator wskazujący na element o kluczu k
pair<const_iterator, const_iterator> equal_range(const key_type& k) const : Zwraca parę iteratorów wskazujących na kolekcję elementów o kluczu k
pair<iterator, iterator> equal_range(const key_type& k) : Zwraca parę iteratorów wskazujących na kolekcję elementów o kluczu k
size_type count(const key_type& k) const : Zwraca liczbę elementów kolekcji identyfikowanych kluczem k
Parametry kontenera
size_type size() const : Zwraca aktualny rozmiar mapy
size_type max_size() const : Zwraca maksymalny dozwolony rozmiar mapy
bool empty() const : Zwraca wartość true gdy mapa jest pusta
size_type bucket_count() const : Zwraca ilość pojemników mapy
void resize(size_type n) : Zmienia rozmiar pojemnika na wartość n
hasher hash_funct() const : Zwraca obiekt udostepniający funkcję mieszającą mapy
key_equal key_eq() const : Zwraca obiekt udostępniający binarny predykat używany do porównywania kluczy
Inne
Przykładowy program