std::clase hash en C++ STL

La clase hash es construible por defecto, lo que significa que uno puede construir este objeto sin argumentos ni valores de inicialización. Se utiliza para obtener el valor hash del argumento que se le está pasando. Si el argumento no cambia, el valor tampoco cambia.
Sintaxis: 
 

template <class T> struct hash;

Sintaxis para crear objeto: 
 

hash<class template> object-name

Funciones miembro: esta clase Hash solo tiene una función miembro: 
 

  • operator(): devuelve el valor hash para un argumento dado.

A continuación se muestra la implementación de la clase hash:
Ejemplo: 
 

CPP

#include <bitset>
 
// functional header
// for hash<class template> class
#include <functional>
 
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
// To demonstrate String Hashing
void stringHashing()
{
 
    // Get the string
    // to get its hash value
    string hashing1 = "Geeks";
 
    // Instantiation of Object
    hash<string> mystdhash;
 
    // Using operator() to get hash value
    cout << "String hash values: "
         << mystdhash(hashing1)
         << endl;
}
 
// To demonstrate BITSET Hashing
void bitsetHashing()
{
 
    // Get the BITSET
    // to get its hash value
    bitset<5> h_bitset("10101");
 
    // Instantiation of Object
    hash<bitset<5> > hash_bitset;
 
    // Using operator() to get hash value
    cout << "\nBitset 10101 hash value: "
         << hash_bitset(h_bitset) << endl;
}
 
// To demonstrate Vector<bool> Hashing
void vectorHashing()
{
 
    // Get the Vector<bool>
    // to get its hash value
    vector<bool>
        h_vecbool{ true, false,
                   true, false };
 
    // Instantiation of Object
    hash<vector<bool> > hash_vector_bool;
 
    // Using operator() to get hash value
    cout << "\nVector<bool> hash value: "
         << hash_vector_bool(h_vecbool)
         << endl;
}
 
// To demonstrate Char Hashing
void charHashing()
{
 
    // Get the char
    // to get its hash value
    char ch = 'a';
 
    // Instantiation of Object
    hash<char> hash_char;
 
    // Using operator() to get hash value
    cout << "\nChar hash values: "
         << hash_char(ch)
         << endl;
}
 
// Driver Code
int main()
{
 
    stringHashing();
    bitsetHashing();
    vectorHashing();
    charHashing();
}
Producción: 

String hash values: 4457761756728957899

Bitset 10101 hash value: 17123654466142159564

Vector hash value: 16935082123893034051

Char hash values: 97

 

Referencia: http://www.cplusplus.com/reference/funcional/hash/
 

Publicación traducida automáticamente

Artículo escrito por Aakash_Panchal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *