multiset::multiset
Tworzy zestaw wielokrotny, jest pusty lub kopii całości lub części innych zestaw wielokrotny.
multiset( );
explicit multiset (
const Compare& _Comp
);
multiset (
const Compare& _Comp,
const Allocator& _Al
);
multiset(
const multiset& _Right
);
template<class InputIterator>
multiset (
InputIterator _First,
InputIterator _Last
);
template<class InputIterator>
multiset (
InputIterator _First,
InputIterator _Last,
const Compare& _Comp
);
template<class InputIterator>
multiset (
InputIterator _First,
InputIterator _Last,
const Compare& _Comp,
const Allocator& _Al
);
multiset(
multiset&& _Right
);
Parametry
Parametr |
Opis |
_Al |
Storage class alokatora stosowaną dla tego obiektu multiset, który domyślnie przydzielania. |
_Comp |
Funkcja porównywania typu constCompare używane do zamówienia w zestaw wielokrotny, domyślnie elementy Compare. |
_Right |
Zestaw wielokrotny konstruowanej zestaw wielokrotny ma być kopię. |
_First |
Pozycja pierwszego elementu w zakresie elementy do skopiowania. |
_Last |
Pozycja pierwszego elementu poza zakres elementów, które mają być skopiowane. |
Uwagi
Wszystkie konstruktory przechowywać alokatora obiektu, który zarządza Magazyn pamięci dla zestaw wielokrotny i które później mogą być zwracane przez wywołanie get_allocator.W deklaracji klasy i makra wstępnego używane do podstawienia allocators alternatywne często pominięto parametr przydzielania.
Wszystkie konstruktory zainicjować ich zestaw wielokrotny.
Wszystkie konstruktory magazynu funkcji obiekt typu porównania, który jest używany do ustanawiania między klawisze zestaw wielokrotny zamówienia i które później mogą być zwracane przez wywołanie key_comp.
Pierwsze trzy konstruktory określić pusty początkowy zestaw wielokrotny, drugi określający typ porównania funkcji (_Comp) stosowaną przy ustalaniu kolejności elementów i trzeci jawnie określając program przydzielania wpisz (_Al) ma być używany.Słowo kluczowe jawne pomija niektóre rodzaje typu automatycznej konwersji.
Czwarty konstruktora określa zestaw wielokrotny kopię _Right.
Kolejne trzy konstruktory skopiuj zakres [_First, _Last) z zestaw wielokrotny w explicitness, określając typ porównania funkcji i przydzielania rosnącymi.
Ostatni konstruktora określa zestaw wielokrotny kopię przenosząc _Right.
Przykład
// multiset_ctor.cpp
// compile with: /EHsc
#include <set>
#include <iostream>
int main( )
{
using namespace std;
multiset <int>::iterator ms1_Iter, ms2_Iter, ms3_Iter;
multiset <int>::iterator ms4_Iter, ms5_Iter, ms6_Iter, ms7_Iter;
// Create an empty multiset ms0 of key type integer
multiset <int> ms0;
// Create an empty multiset ms1 with the key comparison
// function of less than, then insert 4 elements
multiset <int, less<int> > ms1;
ms1.insert( 10 );
ms1.insert( 20 );
ms1.insert( 20 );
ms1.insert( 40 );
// Create an empty multiset ms2 with the key comparison
// function of geater than, then insert 2 elements
multiset <int, greater<int> > ms2;
ms2.insert( 10 );
ms2.insert( 20 );
// Create a multiset ms3 with the
// allocator of multiset ms1
multiset <int>::allocator_type ms1_Alloc;
ms1_Alloc = ms1.get_allocator( );
multiset <int> ms3( less<int>( ), ms1_Alloc );
ms3.insert( 30 );
// Create a copy, multiset ms4, of multiset ms1
multiset <int> ms4( ms1 );
// Create a multiset ms5 by copying the range ms1[_First, _Last)
multiset <int>::const_iterator ms1_bcIter, ms1_ecIter;
ms1_bcIter = ms1.begin( );
ms1_ecIter = ms1.begin( );
ms1_ecIter++;
ms1_ecIter++;
multiset <int> ms5( ms1_bcIter, ms1_ecIter );
// Create a multiset ms6 by copying the range ms4[_First, _Last)
// and with the allocator of multiset ms2
multiset <int>::allocator_type ms2_Alloc;
ms2_Alloc = ms2.get_allocator( );
multiset <int> ms6( ms4.begin( ), ++ms4.begin( ), less<int>( ), ms2_Alloc );
cout << "ms1 =";
for ( ms1_Iter = ms1.begin( ); ms1_Iter != ms1.end( ); ms1_Iter++ )
cout << " " << *ms1_Iter;
cout << endl;
cout << "ms2 = " << *ms2.begin( ) << " " << *++ms2.begin( )
<< endl;
cout << "ms3 =";
for ( ms3_Iter = ms3.begin( ); ms3_Iter != ms3.end( ); ms3_Iter++ )
cout << " " << *ms3_Iter;
cout << endl;
cout << "ms4 =";
for ( ms4_Iter = ms4.begin( ); ms4_Iter != ms4.end( ); ms4_Iter++ )
cout << " " << *ms4_Iter;
cout << endl;
cout << "ms5 =";
for ( ms5_Iter = ms5.begin( ); ms5_Iter != ms5.end( ); ms5_Iter++ )
cout << " " << *ms5_Iter;
cout << endl;
cout << "ms6 =";
for ( ms6_Iter = ms6.begin( ); ms6_Iter != ms6.end( ); ms6_Iter++ )
cout << " " << *ms6_Iter;
cout << endl;
// Create a set by moving s5
set<int> ms7(move(ms5));
cout << "ms7 =";
for ( ms7_Iter = ms7.begin( ); ms7_Iter != ms7.end( ); ms7_Iter++ )
cout << " " << *ms7_Iter;
cout << endl;
}
Dane wyjściowe
ms1 = 10 20 20 40
ms2 = 20 10
ms3 = 30
ms4 = 10 20 20 40
ms5 = 10 20
ms6 = 10
ms7 = 10 20
Wymagania
Nagłówek: <set>
Obszar nazw: std