C++/Set: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 27: | Linia 27: | ||
== Parametry == |
|||
{|class="wikitable" |
|||
!Parametr |
|||
!Opis |
|||
|---- |
|||
|Key |
|||
|Klucz zbioru ten sam co typ wartości. Zdefiniowane także jako: set::key_type i set::value_type |
|||
|---- |
|||
|Compare |
|||
|Funkcja porównująca klucze, według słabo rosnącego porządku którego argumenty są typu key_type; |
|||
zwraca true jeśli pierwszy argument jest wcześniejszy od drugiego, w przeciwnym razie zwraca false. Zdefiniowana także jako: set::key_compare i set::value_compare. |
|||
|---- |
|||
|Alloc |
|||
|Alokator zbioru, używany do wewnętrznego zarządzania pamięcią. |
|||
|---- |
|||
|} |
|||
Wersja z 16:55, 31 sty 2008
Opis
Zbiory są jednym z kontenerów biblioteki STL, których struktura oparta jest na drzewach. Elementy które są w nich przechowywane są posortowane, według pewnego klucza. Zarówno typ wartosci tych elementów jak i typ wartości klucza są takie same. Drzewiasta struktura zapewnia szybkie wyszukiwanie, jednak są z tym związane także pewne mankamenty, mianowicie modyfikacja elementu jest możliwa tylko w taki sposób, że kasujemy stary element, a następnie wstawiamy w to miejsce nowy. Korzystając z terminologii STL-a zbiory sa tzw. kontenerami asocjacyjnymi (o zmiennej długości, pozwalającymi na operowanie elementami przy użyciu kluczy):
Rodzaj kontenera | Opis | |
---|---|---|
1 | prostymi | key_type i value_type są tego samego typu |
2 | posortowanymi | rosnąco względem klucza |
3 | unikalnymi | w danym zbiorze nie mogą wsytępowac dwa elementy o tym samym kluczu |
Parametry
Parametr | Opis |
---|---|
Key | Klucz zbioru ten sam co typ wartości. Zdefiniowane także jako: set::key_type i set::value_type |
Compare | Funkcja porównująca klucze, według słabo rosnącego porządku którego argumenty są typu key_type;
zwraca true jeśli pierwszy argument jest wcześniejszy od drugiego, w przeciwnym razie zwraca false. Zdefiniowana także jako: set::key_compare i set::value_compare. |
Alloc | Alokator zbioru, używany do wewnętrznego zarządzania pamięcią. |
Składniki
Składnik | Opis działania |
---|---|
value_type | Typ obiektu, T, przechowywany w zbiorze(secie). |
key_type | Typ klucza zbioru, powizany z value_type. |
key_compare | Funkcjonał porównujący dwa klucze w celu uporządkowania. |
vaule_type | Funkcjonał porównujący dwie wartości w celu uporządkowania. |
pointer | Wskaźnik na T. |
reference | Referencja do T. |
const_reference | Stała referencja do T. |
size_type | Integralny typ bez znaku. |
difference_type | Integralny typ ze znaku. |
iterator | Iterator używany do 'chodzenia' po zbiorze. |
const_iterator | Stały iterator używany do 'chodzenia'(iteracji) po zbiorze(tego samego typu co zwykly iterator). |
reverse_iterator | Iterator używany do 'chodzenia do tyłu'(iteracji wstecznej) po zbiorze. |
const_reverse_iterator | Stały iterator używany do 'chodzenia do tyłu'(iteracji wstecznej) po zbiorze. |
iterator begin() | Zwraca iterator wskazujący na początek zbioru. |
iterator end() | Zwraca iterator wskazujący na konieczbioru. |
reverse_iterator beginr() | Zwraca reverse_iterator wskazujący na początek odwróconego zbioru. |
reverse_iterator endr() | Zwraca reverse_iterator wskazujący na koniec odwróconego zbioru. |
size_type size() | Zwraca rozmiar zbioru. |
size_type max_size() | Zwraca największy możliwy rozmiar zbioru. |
bool empty() | Zwraca true gdy rozmiar zbioru wynois 0. |
key_compare key_comp() | Zwraca key_compare obiektu używanego przez zbiór. |
value_compare value_comp() | Zwraca value_compare obiektu używanego przez zbiór. |
set() | Tworzy pusty zbiór. |
set(const key_compare& comp) | Tworzy pusty zbiór, używając comp jako key_compare obiektu(klucza porównującego). |
template <class InputIterator>
set(InputIterator f, InputIterator l) |
Tworzy zbiór zawierający kopie zakresu. |
template <class InputIterator>
set(InputIterator f, InputIterator l, const key_compare& comp) |
Tworzy zbiór zawierający kopie zakresu, używając comp jako key_compare obiektu. |
set(const set&) | Konstruktor kopiujący. |
set& operator=(const set&) | Operator przypisania. |
void swap(set&) | Zamienia zawartość dwóch zbiorów. |
pair<iterator, bool>
insert(const value_type& x) |
Wstawia do zbioru element x. |
iterator insert(iterator pos, const value_type& x) | Wstawia do zbioru element x, uzywa pos do wskazania miejsca w którym ma być wstawiony. |
template <class InputIterator>
void insert(InputIterator, InputIterator) |
Wstawia do zbioru zakres. |
void erase(iterator pos) | Kasuje element wskazywany przez pos. |
size_type erase(const key_type& k) | Kasuje element którego kluczem jest k. |
void erase(iterator first, iterator last) | Kasuje wszystkie elementy z danego zakresu. |
void clear() | Kasuje wszystkie elemnty zbioru. |
iterator find(const key_type& k) const | Znajduje element którego klucz wynosi k. |
size_type count(const key_type& k) const | Zwraca liczbę elemtów których klucz wynosi k. |
iterator lower_bound(const key_type& k) const | Znajduje pierwsyz element któreog klucz jest nie mniejszy od k. |
iterator upper_bound(const key_type& k) const | Znajduje pierwsyz element któreog klucz jest większy od k. |
pair<iterator, iterator>
equal_range(const key_type& k) const |
Znajduje zakres zawierający wszystkie elementy o kluczu k. |
bool operator==(const set&, const set&) | Sprawdza dwa zbiory pod względem równości. Jest to funkcja globalna , nei składnikowa. |
bool operator<(const set&,const set&) | Porównanie leksykograficzne. Jest to funkcja globalna , nie składnikowa. |