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.}} |