##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::hash (std::string, std::wstring, std::u16string, std::u32string)

From cppreference.com
< cpp‎ | string‎ | basic string

Defined in header `<string>` |  |
template<> struct hash<std::string>; template<> struct hash<std::wstring>; template<> struct hash<std::u16string>; template<> struct hash<std::u32string>; |  | (since C++11)

The template specializations of std::hash for the various string classes allow users to obtain hashes of strings.

These hashes equal the hashes of corresponding std::basic_string_view classes: If S is one of these string types, SV is the corresponding string view type, and s is an object of type S, then std::hash<S>()(s) == std::hash<SV>()(SV(s)). | (since C++17)

### [edit] Example

The following code shows one possible output of a hash function used on a string:

Run this code

    #include <iostream>
    #include <string>
    #include <functional>

    int main()
    {
        std::string s = "Stand back! I've got jimmies!";
        std::hash<std::string> hash_fn;

        size_t hash = hash_fn(s);

        std::cout << hash << '\n';
    }

Output:

    325378910

### [edit] See also

hash (C++11) | hash function object (class template) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string/hash&oldid=88418"