다음을 통해 공유


multiset::multiset

복수 집합에 값이 비어 있거나 모든 복사본 또는 다른 복수 집합의 일부입니다 생성 합니다.

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
);

매개 변수

Parameter

설명

_Al

기본적으로이 multiset 개체에 사용할 저장소 할당자 클래스 할당자.

_Comp

비교 함수 형식의 constCompare 요소에 기본적으로 복수 집합으로 사용 되는 Compare.

_Right

Multiset은 생성 된 복수 집합 복사본입니다.

_First

복사할 요소의 범위에 있는 첫 번째 요소의 위치입니다.

_Last

복사할 요소의 범위를 벗어나는 첫 번째 요소의 위치입니다.

설명

모든 생성자는 multiset에 메모리 저장소를 관리 하 고 나중에 반환할 호출 하 여 할당자 객체 유형을 저장할 get_allocator.할당자 매개 변수 클래스 선언과 전처리 매크로 대체 할당자를 대체 하는 데 종종 생략 합니다.

모든 생성자가 복수 집합을 초기화합니다.

모든 생성자 저장소는 함수 개체의 형식 비교 사용 되는 사이 키의 복수 집합의 순서를 설정 하 고 나중에 반환할 호출 하 여 key_comp.

초기 빈 multiset, 두 번째는 처음 세 명의 생성자를 지정 비교 함수의 형식을 지정 (_Comp) 입력 요소와 세 번째 순서를 설정 하는 데 사용할 할당자를 명시적으로 지정 (_Al) 데.키워드 명시적 자동 형식 변환을 특정 종류를 표시 하지 않습니다.

네 번째 생성자는 복수 집합 사본을 지정 _Right.

범위는 다음 세 명의 생성자 복사 [_First, _Last)의 multiset 유형 비교 함수 및 할당자를 지정 하는 명시적인 증가 합니다.

이동 하 여 마지막 생성자는 복수 집합 사본을 지정 _Right.

예제

// 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;
}

Output

ms1 = 10 20 20 40
ms2 = 20 10
ms3 = 30
ms4 = 10 20 20 40
ms5 = 10 20
ms6 = 10
ms7 = 10 20

요구 사항

헤더: <set>

네임 스페이스: std

참고 항목

참조

multiset Class

표준 템플릿 라이브러리