Difference between revisions of "cpp/string/basic string/hash"
From cppreference.com
< cpp | string | basic string
m (fix u8tring to u8string) |
m (→Example: shorten and use the result from libstdc++) |
||
Line 38: | Line 38: | ||
{ | { | ||
std::string s = "Stand back! I've got jimmies!"; | std::string s = "Stand back! I've got jimmies!"; | ||
− | std::hash<std::string> | + | |
− | + | std::cout << std::hash<std::string>{}(s) << '\n'; | |
− | + | ||
− | + | ||
− | + | ||
} | } | ||
+ | | p=true | ||
| output= | | output= | ||
− | + | 3544599705012401047 | |
}} | }} | ||
Revision as of 20:37, 18 August 2019
Defined in header <string>
|
||
template<> struct hash<std::string>; template<> struct hash<std::wstring>; |
(since C++11) | |
template<> struct hash<std::pmr::string>; template<> struct hash<std::pmr::wstring>; |
(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::cout << std::hash<std::string>{}(s) << '\n'; }
Possible output:
3544599705012401047
See also
(C++11) |
hash function object (class template) |