Compartilhar via


set::set

Constrói um conjunto que está vazio ou que é uma cópia de todos ou parte de qualquer outro conjunto.

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

Parâmetros

Parâmetro

Descrição

Al

A classe do alocador de armazenamento a ser usada para esse objeto definido, que assume como padrão a Allocator.

Comp

A função de comparação de tipo const Traits usada para ordenar os elementos no conjunto, que assume como padrão a Compare.

Rght

O conjunto de que o conjunto é construído ser 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 cluster 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 os clusters.

Todos os construtores armazenam um objeto de função do tipo Características que são usados para estabelecer uma ordem entre as chaves de conjunto e que pode ser retornado key_compchamando.

Os três primeiros construtores especificam um conjunto vazio inicial, 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 rightajustado.

Os três seguintes construtores usam um initializer_list para especificar os elementos.

Os três seguintes construtores copiar o intervalo [first, last) de um cluster com distinção crescente para especificar o tipo da função de comparação da classe Características e Allocator.

O oitavo construtor especifica uma cópia do conjunto movendo right.

Exemplo

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

Requisitos

defineCabeçalho: <>

Namespace: std

Consulte também

Referência

Classe set

Biblioteca de Modelos Padrão