Narzędzia użytkownika

Narzędzia witryny


opis_kontenera:hash_multiset

Opis kontenera hash_multiset

Autor: Kamil Halicki

hash_multiset<Key, HashFcn, EqualKey, Alloc>

Wielozbiór haszujący jest kontenerem , który pozwala przechowywać wiele elementów o takiej samej wartości. hash_multiset czyli wielozbiór haszujący jest to kontener asocjacyjnym umożliwiający przechowywanie elementów które nie muszą być unikatowe oraz zapewniający szybkie wyszukiwanie i zliczanie elementów o podanym kluczu. Jest to zbiór elementów tak więc klucz i wartość danego elementu są takie same.

Dzięki wykorzystaniu tablicy mieszającej zamorytyzowany czas wykonania podstawowych operacji na kontenerze wynosi O(1).

Szablon kontenera jest parametryzowany następującymi typami:

NazwaOpis
KeyTyp klucza oraz wartości elementów w kontenerze. Typ Key musi mieć zdefiniowaną operację przypisania.
HashFcnFunkcja haszująca używana przez wielozbiór. Domyślnie wartość: hash<Key>
EqualKey Binarny predykat definiujacy relację równoważności pomiędzy kluczami. Jest to funkcja (lub funktor) przyjmująca dwie argumenty typu Key oraz wracający true jeśli klucze są równe oraz false w przeciwnym przypadku. Domyślna wartość: equal_to<Key>
Alloc Alokator używany do zarządzania pamięcią

Typy

NazwaOpis
value_typeTyp obiektów przechowywanych w wielozbiorze
key_typeTyp klucza elementów kontenera
hasherFunkcja haszująca
key_equalObiekt funkcyjny porównujący klucze
pointerWskaźnik na typ value_type
referenceReferencja do typu value_type
const_referenceStała referencja do typu value_type
size_typeTyp całkowity bez znaku
difference_typeTyp całkowity ze znakiem
iterator Iterator używany do przechodzenia po elementach wielozbioru
const_iteratorStały iterator kontenera

Metody

NazwaOpis
iterator begin() Zwraca iterator wskazujący na początek wielozbioru
iterator end() const Zwraca iterator wskazujący na koniec wielozbioru
size_type size() const Zwraca rozmiar wielozbioruReturns the size of the hash_multiset
size_type max_size() const Zwraca największy możliwy rozmiar kontenera
bool empty() const Zwraca true jeśli rozmiar wielozbióru wynosi 0 oraz false w przeciwnym przypadku
size_type bucket_count() const Zwraca liczbę kubełków używanych przez wielozbiór haszujący
void resize(size_type n) Zwiększa liczbę kubełków do wartości nie mniejszej niż n
hasher hash_funct() const Zwraca funkcję haszującą
key_equal key_eq() const Zwraca funkcję porównującą klucze
hash_multiset() Tworzy pusty wielozbiór
hash_multiset(size_type n) Tworzy pusty wielozbiór z przynajmniej n kubełkami
hash_multiset(size_type n, const hasher& h) Tworzy pusty wielozbiór z przynajmniej n kubełkami, używając funkcji haszujacej h
hash_multiset(size_type n, const hasher& h, const key_equal& k) Tworzy pusty wielozbiór z przynajmniej n kubełkami, używając funkcji haszujacej h oraz funkcją porównujacą k
template <class InputIterator> hash_multiset(InputIterator, InputIterator) Tworzy wielozbiór z kopii elementów pochodzących z podanego zakresu
template <class InputIterator> hash_multiset(InputIterator, InputIterator, size_type n) Tworzy wielozbiór z kopii elementów pochodzących z podanego zakresu posiadający przynajmniej n kubełków.
template <class InputIterator> hash_multiset(InputIterator, InputIterator, size_type n, const hasher& h) Tworzy wielozbiór z kopii elementów pochodzących z podanego zakresu posiadający przynajmniej n kubełków, używając funkcji haszującej h.
template <class InputIterator> hash_multiset(InputIterator, InputIterator, size_type n, const hasher& h, const key_equal& k)Tworzy wielozbiór z kopii elementów pochodzących z podanego zakresu posiadający przynajmniej n kubełków, używając funkcji haszującej h oraz funkcji porównującej k
hash_multiset(const hash_multiset&) Konstruktor kopiujący
hash_multiset& operator=(const hash_multiset&) Operator przypisania
void swap(hash_multiset&) Zamienia zawartość dwóch wielozbiorów
iterator insert(const value_type& x) Wstawia x do kontenera
template <class InputIterator> void insert(InputIterator, InputIterator) Wstawia podany zakres do wielozbioru
void erase(iterator pos) Usuwa element wskazywany przez pos
size_type erase(const key_type& k) Usuwa element którego kluczem jest k
void erase(iterator first, iterator last) Usuwa wszystkie elementy w podanym zakresie
void clear() Usuwa wszystkie elementy z kontenera
iterator find(const key_type& k) const Znajduje element o kluczu k
size_type count(const key_type& k) const Podaje liczbę wystąpień elementów o kluczu k
equal_range(const key_type& k) const Znajduje zakrez zawierający wszystkie elementy o kluczu k

Funkcje globalne

NazwaOpis
bool operator==(const hash_multiset&, const hash_multiset&) Porównuje czy dwia wielozbiory są równe.
opis_kontenera/hash_multiset.txt · ostatnio zmienione: 2008/12/11 23:16 przez khalicki