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,

NAME

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,

Synopsis


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)).

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    hash function object
(C++11) (class template)