Udostępnij za pośrednictwem


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

Zobacz też

Informacje

multiset Class

Standardowa biblioteka szablonu