Biblioteca C ++ Unordered_set - constructor

Descripción

Se utiliza para construir un objeto contenedor unordered_set.

Declaración

A continuación se muestra la declaración para std :: unordered_set :: unordered_set.

C ++ 98

explicit unordered_set ( size_type n = /* see below */,
                         const hasher& hf = hasher(),
                         const key_equal& eql = key_equal(),
                         const allocator_type& alloc = allocator_type() );

Parámetros

  • n - Contiene información sobre el número mínimo de depósitos iniciales.

  • hf - Es un objeto de función hash.

  • eql - Es un objeto de función de comparación.

  • alloc - Es un objeto allowcator.

  • first, last - Iteradores de entrada.

  • ust - Es otro objeto unordered_set del mismo tipo.

  • il - Es un objeto initializer_list.

Valor devuelto

ninguna

Excepciones

Se lanza una excepción si cualquier objeto de comparación de elementos produce una excepción.

Tenga en cuenta que los argumentos no válidos provocan un comportamiento indefinido.

Complejidad del tiempo

tiempo constante.

Ejemplo

El siguiente ejemplo muestra el uso de std :: unordered_set :: unordered_set.

#include <iostream>
#include <string>
#include <unordered_set>

template<class T>
T cmerge (T a, T b) { T t(a); t.insert(b.begin(),b.end()); return t; }

int main () {
   std::unordered_set<std::string> first;                               
   std::unordered_set<std::string> second ( {"100","200","300"} );    
   std::unordered_set<std::string> third ( {"400","500","600"} ); 
   std::unordered_set<std::string> fourth ( second );             
   std::unordered_set<std::string> fifth ( cmerge(third,fourth) ); 
   std::unordered_set<std::string> sixth ( fifth.begin(), fifth.end() ); 

   std::cout << "sixth contains:";
   for (const std::string& x: sixth) std::cout << " " << x;
   std::cout << std::endl;

   return 0;
}

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

sixth contains: 500 400 300 600 100 200