std::multiset
Zdefiniowane w nagłówku <set> | ||
template< class Key, | (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.
Spis treści |
[edytuj]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> |
[edytuj]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) |
[edytuj]Funkcje operujące na zawartości
leksykograficznie porównuje wartości w multiset (szablon funkcji) | |
specjalizacja dla algorytmu std::swap (szablon funkcji) |