set::set
Создает набор, пусты, или скопировать все или часть другого набора.
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
);
Параметры
Параметр |
Описание |
Al |
Класс распределителя хранилища, используемый для этого заданного объекта, который устанавливается значение по умолчанию Allocator. |
Comp |
Функция сравнения типа const Traits используется для упорядочивания элементов в наборе, устанавливается значение по умолчанию Compare. |
Rght |
Набор, построенный набор быть копией. |
First |
Положение первого элемента в диапазоне элементов для копирования. |
Last |
Положение первого элемента после диапазона элементов для копирования. |
IList |
Initializer_list, из которого для копирования элементов. |
Заметки
Все конструкторы сохраняют тип объекта распределителя, который управляет хранилище памяти для набора, который может быть возвращено с помощью метода get_allocator. Параметр распределителя часто опускается в объявлении класса и макросах предварительной обработки, чтобы заменить альтернативные распределителей.
Все конструкторы инициализируют их наборы.
Все конструкторы сохраняют объект функции типа Признаки, который используется для задания порядка между набора ключей, который может быть возвращено с помощью метода key_comp.
Первые 3 конструктора определяют пустой начальный набор, второе задание типа функции сравнения (comp), используемый в параметре порядок элементов и третий явно определяет тип распределителя (al) необходимо использовать. Ключевое слово explicit подавляет некоторые типы автоматического преобразования типов.
Задает четвертый конструктор копии набора right.
Следующие 3 initializer_list конструктора используются для указания элементов.
Следующие 3 конструктора копируют диапазон [first, last) набора с увеличением эксплицитности в определение типа функции сравнения класса Признаки и Allocator.
Задает восьмой конструктор копии набора путем перемещения right.
Пример
// 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;
}
Требования
Заголовок:<set>
Пространство имен: std