set::set
Construisez un jeu qui est vide ou qui est une copie de l'ensemble ou d'une partie d'un autre jeu.
set( );
explicit set(
const Traits& Comp
);
set(
const Traits& Comp,
const Allocator& Al
);
set(
const set& Right
);
set(
set&& Right
);
set(
initializer_list<Type> IList
);
set(
initializer_list<Type> IList,
const Compare& Comp
);
set(
initializer_list<Type> IList,
const Compare& Comp,
const Allocator& Al
);
template<class InputIterator>
set(
InputIterator First,
InputIterator Last
);
template<class InputIterator>
set(
InputIterator First,
InputIterator Last,
const Traits& Comp
);
template<class InputIterator>
set(
InputIterator First,
InputIterator Last,
const Traits& Comp,
const Allocator& Al
);
Paramètres
Paramètre |
Description |
Al |
La classe d'allocateur de stockage à utiliser pour cet objet de jeu, qui correspond par défaut à Allocator. |
Comp |
La fonction de comparaison du type const Traits utilisée pour trier les éléments dans un jeu Compare. |
Rght |
Le jeu dans lequel le jeu généré 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 jeu 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 leurs jeux.
Tous les constructeurs stockent un objet de fonction de type Traits qui est utilisé pour établir un ordre entre les clés du mappage multiple et qui peut ensuite être retourné en appelant 1e4kz2ct(v=vs.120).mdkey_comp.
Les trois premiers constructeurs spécifient un jeu 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 jeu right.
Les trois constructeurs suivants utilisent un initializer_list pour spécifier les éléments.
Les trois constructeurs suivants copient la plage [first, last) d'un jeu avec augmentation de l'explicité en spécifiant le type de fonction de comparaison de classe comparent et Allocator.
Le huitième constructeur spécifie une copie du jeu en déplaçant right.
Exemple
// set_set.cpp
// compile with: /EHsc
#include <set>
#include <iostream>
int main()
{
using namespace std;
// Create an empty set s0 of key type integer
set <int> s0;
// Create an empty set s1 with the key comparison
// function of less than, then insert 4 elements
set <int, less<int> > s1;
s1.insert(10);
s1.insert(20);
s1.insert(30);
s1.insert(40);
// Create an empty set s2 with the key comparison
// function of less than, then insert 2 elements
set <int, less<int> > s2;
s2.insert(10);
s2.insert(20);
// Create a set s3 with the
// allocator of set s1
set <int>::allocator_type s1_Alloc;
s1_Alloc = s1.get_allocator();
set <int> s3(less<int>(), s1_Alloc);
s3.insert(30);
// Create a copy, set s4, of set s1
set <int> s4(s1);
// Create a set s5 by copying the range s1[_First, _Last)
set <int>::const_iterator s1_bcIter, s1_ecIter;
s1_bcIter = s1.begin();
s1_ecIter = s1.begin();
s1_ecIter++;
s1_ecIter++;
set <int> s5(s1_bcIter, s1_ecIter);
// Create a set s6 by copying the range s4[_First, _Last)
// and with the allocator of set s2
set <int>::allocator_type s2_Alloc;
s2_Alloc = s2.get_allocator();
set <int> s6(s4.begin(), ++s4.begin(), less<int>(), s2_Alloc);
cout << "s1 =";
for (auto i : s1)
cout << " " << i;
cout << endl;
cout << "s2 = " << *s2.begin() << " " << *++s2.begin() << endl;
cout << "s3 =";
for (auto i : s3)
cout << " " << i;
cout << endl;
cout << "s4 =";
for (auto i : s4)
cout << " " << i;
cout << endl;
cout << "s5 =";
for (auto i : s5)
cout << " " << i;
cout << endl;
cout << "s6 =";
for (auto i : s6)
cout << " " << i;
cout << endl;
// Create a set by moving s5
set<int> s7(move(s5));
cout << "s7 =";
for (auto i : s7)
cout << " " << i;
cout << endl;
// Create a set with an initializer_list
cout << "s8 =";
set<int> s8{ { 1, 2, 3, 4 } };
for (auto i : s8)
cout << " " << i;
cout << endl;
cout << "s9 =";
set<int> s9{ { 5, 6, 7, 8 }, less<int>() };
for (auto i : s9)
cout << " " << i;
cout << endl;
cout << "s10 =";
set<int> s10{ { 10, 20, 30, 40 }, less<int>(), s9.get_allocator() };
for (auto i : s10)
cout << " " << i;
cout << endl;
}
Configuration requise
En-tête: <jeu>
Espace de noms : std