C ++ Set Library - función set ()

Descripción

El constructor de C ++ std::set::set() (Range Constructor) construye un contenedor de conjuntos con tantos elementos como se mencionan en el rango [primero, último), con cada elemento de conjunto construido a partir de su elemento correspondiente en ese rango.

Declaración

A continuación se muestra la declaración para el constructor de rango std :: set :: set () del encabezado std :: set.

C ++ 98

template <class InputIterator>
 set (InputIterator first, InputIterator last,
      const key_compare& comp = key_compare(),
      const allocator_type& alloc = allocator_type());

C ++ 11

template <class InputIterator>
   set (InputIterator first, InputIterator last,
        const key_compare& comp = key_compare(),
        const allocator_type& = allocator_type());

C ++ 14

template <class InputIterator>
  set (InputIterator first, InputIterator last,
       const key_compare& comp = key_compare(),
       const allocator_type& = allocator_type());
template <class InputIterator>
  set (InputIterator first, InputIterator last,
       const allocator_type& = allocator_type());

Parámetros

  • alloc - Ingrese el iterador a la posición inicial.

  • comp - Objeto de función de comparación para usar en todas las comparaciones de claves

  • first, last- El rango para copiar del que son los iteradores de entrada. Este rango incluye los elementos del primero al último, incluido el elemento señalado por el primero pero excluyendo el señalado por el último.

Valor devuelto

El constructor nunca devuelve ningún valor.

Excepciones

Esta función miembro no tiene efecto en caso de que se produzca alguna excepción. Sin embargo, si el rango especificado por [primero, último) no es válido, puede resultar en un comportamiento indefinido.

Complejidad del tiempo

N log (N), donde N = std :: distancia (primero, último);

else linear (O (N)) en la distancia entre los iteradores, si los elementos ya están ordenados.

Ejemplo

El siguiente ejemplo muestra el uso del constructor de rango std :: set :: set ().

#include <iostream>
#include <set>

using namespace std;

int main(void) {
   char vowels[] = {'a','e','i','o','u'};
  
   // Range Constructor
   std::set<char> t_set (vowels, vowels+5);  

   std::cout <> "Size of set container t_set is : " << t_set.size();
   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Size of set container t_set is : 5