Narzędzia użytkownika

Narzędzia witryny


opis_kontenera:multiset

To jest stara wersja strony!


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:

  • posiadać konstruktor kopiujący
  • posiadać operator przypisania
  • udostępniać funkcje void swap(Key,Key) która zamienia miejscami elementu podane jako argumenty

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:

  • posiadać operator wywolania funkcyjnego bool operator()(Key,Key) który zwraca true, gdy pierwszy argument jest mniejszy od drugiego, a w przeciwnym przypadku zwraca false

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:

  • multiset::iterator - pozwala na sekwencyjny dostęp do elementów multizbioru
  • multiset::const_iterator - pozwala na sekwencyjny dostęp do elementów multizbioru (bez możliwości zmiany ich)
  • multiset::reverse_iterotor - pozwala na sekwencyjny dostęp do elementów multizbioru (od końca do początku)
  • 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

Zdefiniowane są następujące typy referencji:

  • multiset::reference - typ będący referencją do elementów multizbioru
  • multiset::const_reference - typ będący stała referencją do elementów multizbioru

Inne

Inne zdefiniowane typy to:

  • multiset::key_compare , multiset::value_compare - typ określający sposób porównywania elementów
  • multiset::key_type ,multiset::value_type - typ przechowywanych elementów
  • multiset::size_type - typ określający odległość pomiędzy elementami (nieujemna)
  • 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.

Przykładowy program z zastosowaniem

opis_kontenera/multiset.1229118510.txt.gz · ostatnio zmienione: 2008/12/12 22:48 przez marcink