multiset::multiset
Construit un multiset qui est vide ou qui est une copie de l'ensemble ou une partie d'un 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
);
Paramètres
Paramètre |
Description |
Al |
La classe d'allocateur de stockage à utiliser pour cet objet multiset Allocator, qui est . |
Comp |
La fonction de comparaison du type const Compare utilisée pour trier les éléments dans un multiset Compare. |
Right |
Le multiset dont le multiset construit doit être une copie. |
First |
Position du premier élément dans la plage d'éléments à copier. |
Last |
Position du premier élément au delà de la plage d'éléments à copier. |
IList |
L'initializer_list depuis laquelle copier les éléments. |
Notes
Tous les constructeurs stockent un type d'objet d'allocation qui gère le stockage de mémoire pour le multiset et qui peut ensuite être retourné en appelant get_allocator. Le paramètre d'allocateur est souvent omis dans les déclarations de classe et les macros de prétraitement utilisées pour substituer d'autres allocateurs.
Tous les constructeurs initialisent leur multiset.
Tous les constructeurs stockent un objet de fonction de type Compare qui est utilisé pour établir un ordre entre les clés du multiset et qui peut ensuite être retourné en appelant key_comp.
Les trois premiers constructeurs spécifient un multiset initial vide, le deuxième spécifie le type de fonction de comparaison (Comp) à utiliser pour établir l'ordre des éléments et le troisième spécifie explicitement le type d'allocateur (Al) à utiliser. Le mot clé explicit supprime certains genres de conversion de type automatique.
Le quatrième constructeur spécifie une copie du multiset Right.
Le cinquième constructeur spécifie une copie du multiset en déplaçant Right.
Les sixième, septième, huitième constructeurs spécifient un initializer_list depuis laquelle copier les éléments.
Les trois constructeurs suivants copient la plage [[First, Last), ) d'un multiset avec augmentation de l'explicité en spécifiant le type de fonction de comparaison de classe comparent et allocator.
Exemple
// 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;
}
Sortie
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
Configuration requise
En-tête: <jeu>
Espace de noms : std