multiset::multiset
Constrói um multiset que está vazio ou que é uma cópia de todos ou parte de qualquer outro multiset.
multiset( );
explicit multiset (
const Compare& Comp
);
multiset (
const Compare& Comp,
const Allocator& Al
);
multiset(
const multiset& Right
);
multiset(
multiset&& Right
);
multiset(
initializer_list<Type> IList
);
multiset(
initializer_list<Type> IList,
const Compare& Comp
);
multiset(
initializer_list<Type> IList,
const Compare& Comp,
const Allocator& Al
);
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
);
Parâmetros
Parâmetro |
Descrição |
Al |
A classe do alocador de armazenamento a ser usada para este objeto de multiset, que assume como padrão a Allocator. |
Comp |
A função de comparação de tipo const Compare usada para ordenar os elementos no multiset, que assume como padrão a Compare. |
Right |
O multiset de que o multiset ser construído é uma cópia. |
First |
A posição do primeiro elemento no intervalo de elementos a ser copiado. |
Last |
A posição do primeiro elemento além do intervalo de elementos a ser copiado. |
IList |
O initializer_list da qual copiar os elementos. |
Comentários
Todos os construtores armazenam um tipo de objeto do alocador que gerenciam o armazenamento de memória para o multiset e que pode ser retornado get_allocatorchamando. O parâmetro é omitido do alocador frequentemente em declarações da classe e em macros de pré-processamento usados para substituir alocadores de backup.
Todos os construtores inicializar o multiset.
Todos os construtores armazenam um objeto da função de classificação compara que são usados para estabelecer uma ordem entre as chaves de multiset e que pode ser retornado key_compchamando.
Os três primeiros construtores especificam um multiset inicial vazia, o segundo especificando o tipo da função de comparação (Comp) a ser usada para estabelecer a ordem dos elementos e o terceiro especificando explicitamente o tipo do alocador (Al) a ser usado. A palavra-chave explicit suprime determinados tipos de conversão automática de tipo.
O quarto construtor especifica uma cópia de multiset Right.
O quinto construtor especifica uma cópia de multiset movendo Right.
O sixth, o sétimo, e os construtores oitavo especificam um initializer_list da qual copiar os elementos.
Os três seguintes construtores copiar o intervalo [First, Last) de um multiset com distinção crescente para especificar o tipo de função e do alocador de comparação.
Exemplo
// 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, less<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 (auto i : ms1)
cout << " " << i;
cout << endl;
cout << "ms2 =";
for (auto i : ms2)
cout << " " << i;
cout << endl;
cout << "ms3 =";
for (auto i : ms3)
cout << " " << i;
cout << endl;
cout << "ms4 =";
for (auto i : ms4)
cout << " " << i;
cout << endl;
cout << "ms5 =";
for (auto i : ms5)
cout << " " << i;
cout << endl;
cout << "ms6 =";
for (auto i : ms6)
cout << " " << i;
cout << endl;
// Create a multiset by moving ms5
multiset<int> ms7(move(ms5));
cout << "ms7 =";
for (auto i : ms7)
cout << " " << i;
cout << endl;
// Create a multiset with an initializer_list
multiset<int> ms8({1, 2, 3, 4});
cout << "ms8=";
for (auto i : ms8)
cout << " " << i;
cout << endl;
}
Saída
ms1 = 10 20 20 40
ms2 = 10 20
ms3 = 30
ms4 = 10 20 20 40
ms5 = 10 20
ms6 = 10
ms7 = 10 20
ms8= 1 2 3 4
Requisitos
defineCabeçalho: <>
Namespace: std