Przestrzenie nazw
Warianty
Działania

std::multiset::multiset

Z cppreference.com
< cpp‎ | container‎ | multiset
(1)
explicit multiset( const Compare& comp = Compare(),
                   const Allocator& alloc = Allocator() );
explicit multiset( const Allocator& alloc );
(1) (od C++11)
(2)
template< class InputIterator >

multiset( InputIterator first, InputIterator last,
          const Compare& comp = Compare(),

          const Allocator& alloc = Allocator() );
multiset( const multiset& other );
(3)
multiset( const multiset& other, const Allocator& alloc );
(3) (od C++11)
multiset( multiset&& other );
(4) (od C++11)
multiset( multiset&& other, const Allocator& alloc );
(4) (od C++11)
(5)
multiset( std::initializer_list<value_type> init,

          const Compare& comp = Compare(),

          const Allocator& alloc = Allocator() );
(od C++11)

Konstruuje nowy kontener z różnych źródeł danych, opcjonalnie wykorzystując dostarczony przez użytkownika alokator alloc i/lub obiekt funkcji porównującej comp.

1) Domyślny konstruktor. Konstruuje pusty kontener.
2) Konstruktor przedziałowy. Konstruuje kontener z zawartością przedziału [first, last).
3) Konstruktor kopiujący. Konstruuje kontener z kopią zawartości other. If alloc is not provided, allocator is obtained by calling std::allocator_traits<allocator_type>::select_on_container_copy_construction(other.get_allocator()).
4) Konstruktor przenoszący. Constructs the container with the contents of other using move semantics. If alloc is not provided, allocator is obtained by move-construction from the allocator belonging to other.
5) Konstruktor z listy inicjalizacyjnej. Konstruuje kontener z zawartością listy inicjalizacyjnej init.

Spis treści

[edytuj] Parametry

alloc - alokator używany do wszystkich alokacji pamięci wykonywanych przez ten kontener
comp - obiekt funkcji porównującej, wykorzystywany przy wszystkich porównaniach kluczy
first, last - przedział, z którego zostają skopiowane elementy
other - inny kontener, wykorzystywany jako źródło, z którego inicjalizowane są elementy kontenera
init - lista inicjalizacyjna, do zainicjowania wartości elementów kontenera
Wymagania względem typów
-
InputIterator musi spełniać wymagania InputIteratorerator.
-
Compare musi spełniać wymagania Compare.
-
Allocator musi spełniać wymagania Allocator.

[edytuj] Złożoność

1) Stała

2) N log(N), gdzie N = std::distance(first, last) ogólnie, liniowa względem N jeśli przedział jest już posortowany zgodnie z value_comp().

3) Liniowa względem rozmiaru other

4) Stała. Jeśli alloc jest podany i alloc != other.get_allocator(), liniowa.

5) N log(N), gdzie N = init.size()) ogólnie, liniowa względem N jeśli init jest już posortowana zgodnie z value_comp().

[edytuj] Wyjątki

Wywołania Allocator::allocate mogą wyrzucić wyjątki.

[edytuj] Notka

Po skonstruowaniu kontenera przez przeniesienie (przeciążenie (4)), referencje, wskaźniki i iteratory (inne niż "past-the-end") do other pozostają prawidłowe, ale wskazują na elementy znajdujące się teraz w *this. Obecny standard gwarantuje to przez oświadczenie zbiorcze w §23.2.1[container.requirements.general]/12, i bardziej bezpośrednia gwarancja jest wzięta pod uwagę: LWG 2321.

[edytuj] Przykład

[edytuj] Zobacz także

przypisuje wartości do kontenera
(publiczna metoda) [edit]