std::hash(std::string,std::wstring,std::u16string,std::u32string,std::pmr::string, (3) - Linux Manuals

std::hash(std::string,std::wstring,std::u16string,std::u32string,std::pmr::string,: std::hash(std::string,std::wstring,std::u16string,std::u32string,std::pmr::string,


std::hash(std::string,std::wstring,std::u16string,std::u32string,std::pmr::string, - std::hash(std::string,std::wstring,std::u16string,std::u32string,std::pmr::string,


Defined in header <string>
template<> struct hash<std::string>;

template<> struct hash<std::wstring>;
template<> struct hash<std::u8string>; // c++20  (since C++11)
template<> struct hash<std::u16string>;

template<> struct hash<std::u32string>;
template<> struct hash<std::pmr::string>;

template<> struct hash<std::pmr::wstring>;
template<> struct hash<std::pmr::u8string>;      (since C++20)
template<> struct hash<std::pmr::u16string>;

template<> struct hash<std::pmr::u32string>;

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    (since C++17)
string view type, and s is an object of type S, then std::hash<S>()(s)
== std::hash<SV>()(SV(s)).


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';



See also

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