Spis treści

MULTISET

Opis

Multiset - multizbior.

Multiset jest kontenerem asocjacyjnym, w którym przechowywane są elementy typu Key. Multiset jest również kontenerem, w którym możne występować dwa lub więcej elementów o takim samym kluczu.

Definicja

Multiset jest zdefiniowany w standardowym nagłówku set oraz w niestandardowym kompatybilnym wstecz nagłówku multiset.h

Parametry szablonowe

std::multiset<Key,Compare,Alloc>

Key

Jest typem jaki jest przechowywany w multizbiorze. Jest również zdefiniowana jako multiset::key_type oraz multiset::value_type.

Key musi spełniać następujące wymagania:

Compare

Jest typem za pomocą którego określa się kolejność przechowywanych elementów. Jest również zdefiniowana jako multiset::key_compare oraz multiset::value_compare. Domyślna wartość to: less<T> .

Compare musi spełniać następujące wymagania:

Alloc

Jest to alokator używany do zarządzania pamięcią. Domyślna wartość to alloc .

Typy

Iteratory

Zdefiniowane są następujące typy iteratorów:

Referencje

Zdefiniowane są następujące typy referencji:

Inne

Inne zdefiniowane typy to:

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

Zwraca iterator wskazujący na pierwszy element.

end

Zwraca iterator wskazujący na element za ostatnim.

rbegin

Zwraca odwrotny iterator wskazujący na ostatni element.

rend

Zwraca odwrotny iterator wskazujący na element przed pierwszym elementem.

Zliczanie elementów

Wyszukiwanie elementów

Jeśli nie istnieje taki element to funkcje te zwracają end()

Zakres elementów można też uzyskać za pomocą: pair<iterator, iterator>( multiset::lower_bound(key), multiset::upper_bound(key))

Dodawanie elementów

void insert(InputIterator, InputIterator) - dodaje elementy z zadanego zakresu

Usuwanie elementów

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 pokazujący działanie multiset.