# std::hash (std::string, std::wstring, std::u16string, std::u32string, std::pmr::string, std::pmr::wstring, std::pmr::u16string, std::pmr::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::u8string>; // c++20 template<> struct hash<std::u16string>; template<> struct hash<std::u32string>; |  | (since C++11)
template<> struct hash<std::pmr::string>; template<> struct hash<std::pmr::wstring>; template<> struct hash<std::pmr::u8string>; template<> struct hash<std::pmr::u16string>; template<> struct hash<std::pmr::u32string>; |  | (since C++20)

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)

### 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

### See also

hash (C++11) | hash function object (class template)

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