Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
opis_kontenera:multiset [2008/12/12 22:25] marcink |
opis_kontenera:multiset [2008/12/13 02:55] (aktualna) marcink |
||
---|---|---|---|
Linia 41: | Linia 41: | ||
- | ===== Metody i Typy ===== | + | ===== Typy ===== |
- | ==== Zdefiniowane typy ==== | + | ==== Iteratory ==== |
- | + | ||
- | === Iteratory === | + | |
Zdefiniowane są następujące typy iteratorów: | Zdefiniowane są następujące typy iteratorów: | ||
Linia 53: | Linia 51: | ||
* multiset::const_reverse_iterator - pozwala na sekwencyjny dostęp do elementów multizbioru (od końca do początku, bez możliwości zmiany ich) | * multiset::const_reverse_iterator - pozwala na sekwencyjny dostęp do elementów multizbioru (od końca do początku, bez możliwości zmiany ich) | ||
- | === Referencje === | + | ==== Referencje ==== |
Zdefiniowane są następujące typy referencji: | Zdefiniowane są następujące typy referencji: | ||
Linia 59: | Linia 57: | ||
* multiset::const_reference - typ będący stała referencją do elementów multizbioru | * multiset::const_reference - typ będący stała referencją do elementów multizbioru | ||
- | === Inne === | + | ==== Inne ==== |
Inne zdefiniowane typy to: | Inne zdefiniowane typy to: | ||
Linia 67: | Linia 65: | ||
* multiset::difference_type - typ określający odległość pomiędzy elementami (może być ze znakiem) | * multiset::difference_type - typ określający odległość pomiędzy elementami (może być ze znakiem) | ||
+ | |||
+ | ===== Metody ===== | ||
+ | |||
+ | ==== Konstruktory ==== | ||
+ | |||
+ | === multiset() === | ||
+ | Konstruktor domyślny, tworzący pusty multizbiór. | ||
+ | |||
+ | === multiset(const key_compare& comp) === | ||
+ | Tworzy pusty multizbiór, używający podanego obiektu do porównywania elementów. | ||
+ | |||
+ | === template <class InputIterator> multiset(InputIterator f, InputIterator l) === | ||
+ | Tworzy multizbiór, posiadający elementy z zadanego zakresu. | ||
+ | |||
+ | === template <class InputIterator> multiset(InputIterator f, InputIterator l, const key_compare& comp) === | ||
+ | Tworzy multizbiór, posiadający elementy z zadanego zakresu i używający podanego obiektu do porównywania elementów. | ||
+ | |||
+ | === multiset(const multiset&) === | ||
+ | Konstruktor kopiujący. | ||
+ | |||
+ | |||
+ | ==== Ustawianie iteratorów ==== | ||
+ | |||
+ | === begin === | ||
+ | * iterator begin (); | ||
+ | * const_iterator begin () const; | ||
+ | |||
+ | Zwraca iterator wskazujący na pierwszy element. | ||
+ | |||
+ | === end === | ||
+ | * iterator end (); | ||
+ | * const_iterator end () const; | ||
+ | |||
+ | Zwraca iterator wskazujący na element za ostatnim. | ||
+ | |||
+ | === rbegin === | ||
+ | * reverse_iterator rbegin(); | ||
+ | * const_reverse_iterator rbegin() const; | ||
+ | |||
+ | Zwraca odwrotny iterator wskazujący na ostatni element. | ||
+ | |||
+ | === rend === | ||
+ | * reverse_iterator rend(); | ||
+ | * const_reverse_iterator rend() const; | ||
+ | |||
+ | Zwraca odwrotny iterator wskazujący na element przed pierwszym elementem. | ||
+ | |||
+ | |||
+ | ==== Zliczanie elementów ==== | ||
+ | |||
+ | * bool empty() const - zwraca true, gdy multizbiór jest pusty, w przeciwnym przypadku false | ||
+ | * size_type count(const key_type& k) const - zwraca liczbę wystąpień elementów o zadanym kluczu | ||
+ | * size_type size() const - podaje liczbę elementów w multizbiorze | ||
+ | |||
+ | ==== Wyszukiwanie elementów ==== | ||
+ | |||
+ | * iterator find(const key_type& k) const - Zwraca pierwszy element o zadanym kluczu. | ||
+ | * iterator lower_bound(const key_type& k) const - Zwraca pierwszy element którego klucz nie jest mniejszy od zadanego klucza. | ||
+ | * iterator upper_bound(const key_type& k) const - Zwraca pierwszy element, którego klucz jest większy od zadanego. | ||
+ | |||
+ | Jeśli nie istnieje taki element to funkcje te zwracają end() | ||
+ | |||
+ | * pair<iterator, iterator> equal_range(const key_type& k) const - Zwraca zakres elementów o zadanym kluczu. | ||
+ | |||
+ | Zakres elementów można też uzyskać za pomocą: pair<iterator, iterator>( multiset::lower_bound(key), multiset::upper_bound(key)) | ||
+ | |||
+ | ==== Dodawanie elementów ==== | ||
+ | |||
+ | * iterator insert(const value_type& x) - dodaje x do multizbioru. | ||
+ | * iterator insert(iterator pos, const value_type& x) - dodaje x do multizbioru, używając pos jako wskazanie gdzie dany element ma zostać wstawiony | ||
+ | * template <class InputIterator> | ||
+ | void insert(InputIterator, InputIterator) - dodaje elementy z zadanego zakresu | ||
+ | |||
+ | |||
+ | ==== Usuwanie elementów ==== | ||
+ | |||
+ | * iterator erase(iterator pos) - usuwa element wskazywany przez iterator (zwraca iterator na element za osuniętym) | ||
+ | * size_type erase(const key_type& k) - usuwa wszystkie elementy o podanym kluczu | ||
+ | * iterator erase(iterator first, iterator last) - usuwa elementy podanego zakresu <first,last) (zwraca iterator na element za ostatnim usunietym) | ||
+ | * void clear() - usuwa wszystkie elementy | ||
+ | |||
+ | Aby usunąć jeden element o zadanym kluczu należy użyć następującej konstrukcji: erase( find(k) ) | ||
===== Przykładowy program z zastosowaniem ===== | ===== Przykładowy program z zastosowaniem ===== | ||
- | [[:multiset:multiset.cpp|Przykładowy program pokazujący działanie multiset.]] | + | {{:opis_kontenera:multiset.cpp|Przykładowy program pokazujący działanie multiset.}} |