Spis treści

Temat:Opis kontenera Hash_set

Autor:Marian Szczykulski


Hash_set jest to zbiór, korzystający z funkcji mieszającej do szybkiego wyszukiwania elementów.

Szablon zbioru hash_set (kompilator GNU g++) jest następujący:

hash_set<Key,HashFcn, EqualKey, Alloc>
KeyTyp przechowywanych obiektów
HashFcnFunkcja mieszająca (jest to funktor). Domyślnie hash<Key>
EqualKeyFunktor do porównywania dwóch obiektów. Domyślnie equal_to<Key>
AllocAlokator do zarządzania pamięcią. Domyślnie alloc

Dla kompilatora Visual Studio (2008) szablon ten wygląda inaczej.

hash_set<Key,hash_compare,Alloc>
KeyTyp przechowywanych objektów
hash_compareJest to funktor który zawiera w sobie zarówno funkcje hashujaca jak i tą do porównywania dwóch objektów. Domyślnie hash_compare<Key , less<Key>
AllocAlokator do zarządzania pamięcią.Domyślnie allocator<Key>

Funkcje:

NazwaOpis
iterator begin() const Zwraca iterator wskazujący na początek zbioru hash_set
iterator end() constZwraca iterator wskazający na koniec zbioru hash_set
size_type size() constZwraca rozmiar zbioru
size_type max_size() constZwraca największy możliwy rozmiar zbioru
bool empty() constZwraca tru jeżeli rozmiar zbioru jest równy zero
size_type bucket_count() constZwraca liczbę koszyków uzywanych przez zbiór hash_set
void resize(size_type n)Zwiększa liczbę koszyków do conajmniej n
hasher hash_funct() constZwraca objekt(funktor) mieszający używany przez zbiór hash_set
key_equal key_eq() constZwraca objekt(funktor) służący do porównywania objektów, używany przez zbiór hash_set
hash_set& operator=(const hash_set&)Operator przypisania.
void swap(hash_set&)Zamienia zawartości dwóch zbiorów hash_set.
pair<iterator, bool> insert(const value_type& x)Wstawia x do zbioru hash_set.
template <class InputIterator>void insert(InputIterator f, InputIterator l)Wstawia do zbioru hash_set podany zakres objektów (zakres podany za pomoca iteratorów)
void erase(iterator pos)Usuwa element wskazywany przez iterator pos
size_type erase(const key_type& k)Usuwa element o wartości klucza równej k
void erase(iterator first, iterator last)Usuwa podany zakres objektów
void clear()Usuwa cały zbiór
iterator find(const key_type& k) constZnajduje element o kluczu równym k
size_type count(const key_type& k) constZlicza liczbę elementów, których klucz jest równy k.
pair<iterator, iterator> equal_range(const key_type& k) constZnajduje zakres wszystkich elementów o kluczu równym k.
bool operator==(const hash_set&,const hash_set&)Operator porównania.

Konstruktory:

hash_set()Konstruktor domyslny. Tworzy pusty zbiór.
hash_set(size_type n)Tworzy pusty zbiór hash_set z conajmniej n koszykami.
hash_set(size_type n,const hasher& h)Tworzy pusty zbiór hash_set z conajmniej n koszykami i korzystający z h jako funkcji mieszającej.
hash_set(size_type n,const hasher& h,const key_equal& k)Tworzy pusty zbiór hash_set z conajmniej n koszykami, korzystający z h jako funkcji mieszającej oraz k do porównywani objektów.
template <class InputIterator> hash_set(InputIterator f, InputIterator l)Tworzy zbiór hash_set jako kopię z podanego zakresu.
template <class InputIterator> hash_set(InputIterator f, InputIterator l, size_type n)Tworzy zbiór hash_set jako kopię z podanego zakresu i conajmniej n koszykami.
template <class InputIterator>hash_set(InputIterator f, InputIterator size_type n, const hasher& h)Tworzy zbiór hash_set jako kopię z podanego zakresu, conajmniej n koszykami oraz korzystającym z h jako funkcji mieszającej.
hash_set(InputIterator f, InputIterator, size_type n, const hasher&, const key_equal& k)Tworzy zbiór hash_set jako kopię z podanego zakresu, conajmniej n koszykami, korzystającym z h jako funkcji mieszającej oraz k do porównywania objektów.
hash_set(const hash_set&)Konstruktor kopiujący.

Marian Szczykulski 2008/12/09 01:32