std::multiset
| Zdefiniowane w nagłówku <set>
|
||
template< class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> > class multiset; |
(1) | |
std::multiset (multizbiór) jest kontenerem asocjacyjnym, zawierającym posortowany zbiór obiektów typu Key. W przeciwieństwie do kontenera std::set, możliwe jest przechowywanie wielu elementów o tej samej wartości. Elementy są sortowane na podstawie funkcji porównującej Compare. Operacje znajdowania, wstawiania i usuwania elementów mają złożoność logarytmiczną.
Wszędzie, gdzie w bibliotece standardowej wykorzystywany jest koncept Compare, unikalność jest sprawdzana korzystając z relacji równoważności. Dwa obiekty a i b są uważane za równoważne, jeśli żaden z nich nie jest mniejszy od drugiego !comp(a, b) && !comp(b, a).
Kolejność elementów równoważnych przy porównaniu jest taka, jak kolejność ich wstawiania i nie podlega zmianie. (od C++11)
std::multiset spełnia wymagania Container, AllocatorAwareContainer, AssociativeContainer i ReversibleContainer.
Typy składowe
| Typ składowy | Definicja | ||||
| key_type | Key | ||||
| value_type | Key | ||||
| size_type | Typ całkowitoliczbowy bez znaku (zwykle std::size_t) | ||||
| difference_type | Typ całkowitoliczbowy ze znakiem (zwykle std::ptrdiff_t) | ||||
| key_compare | Compare | ||||
| value_compare | Compare | ||||
| allocator_type | Allocator | ||||
| reference |
| ||||
| const_reference |
| ||||
| pointer |
| ||||
| const_pointer |
| ||||
| iterator | Constant LegacyBidirectionalIterator | ||||
| const_iterator | Constant BidirectionalIterator | ||||
reverse_iterator
|
std::reverse_iterator<iterator>
| ||||
const_reverse_iterator
|
std::reverse_iterator<const_iterator>
|
Metody
| Konstruuje multiset (publiczna metoda) | |
| Niszczy multiset (publiczna metoda) | |
| przypisuje wartości do kontenera (publiczna metoda) | |
| zwraca skojarzony alokator (publiczna metoda) | |
Iteratory | |
| zwraca iterator na początek kontenera (publiczna metoda) | |
| zwraca iterator za koniec kontenera (publiczna metoda) | |
| zwraca odwrócony iterator na początek (publiczna metoda) | |
| zwraca odwrócony iterator za koniec kontenera (publiczna metoda) | |
Pojemność | |
| sprawdza, czy kontener jest pusty (publiczna metoda) | |
| zwraca liczbę elementów (publiczna metoda) | |
| zwraca maksymalną możliwą liczbę elementów (publiczna metoda) | |
Modyfikatory | |
| czyści zawartość (publiczna metoda) | |
| wstawia elementy (publiczna metoda) | |
(C++11) |
konstruuje element "w miejscu" (publiczna metoda) |
(C++11) |
tworzy elementy "w miejscu", korzystając z podpowiedzi (publiczna metoda) |
| usuwa elementy (publiczna metoda) | |
| zamienia zawartość (publiczna metoda) | |
Przeszukiwanie | |
| zwraca liczbę elementów o podanym kluczu (publiczna metoda) | |
| znajduje element ze wskazanym kluczem (publiczna metoda) | |
| zwraca przedział elementów o podanym kluczu (publiczna metoda) | |
| zwraca iterator na pierwszy element nie mniejszy niż dany klucz (publiczna metoda) | |
| zwraca iterator na pierwszy element większy niż dany klucz (publiczna metoda) | |
Obserwatory | |
| zwraca funkcję porównującą klucze (publiczna metoda) | |
| zwraca funkcję porównującą klucze obiektów typu value_type (publiczna metoda) | |
Funkcje operujące na zawartości
| leksykograficznie porównuje wartości w multiset (szablon funkcji) | |
| specjalizacja dla algorytmu std::swap (szablon funkcji) |