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

来自cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
非成员函数
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
帮助类
hash<std::string>hash<std::wstring>hash<std::u32string>hash<std::u16string>
(C++11)
(C++11)
(C++11)
(C++11)
推导指引(C++17)
 
定义于头文件 <string>
template<> struct hash<std::string>;

template<> struct hash<std::wstring>;
template<> struct hash<std::u16string>;

template<> struct hash<std::u32string>;
(C++11 起)

std::hash 对各种字符串类的模板特化允许用户获得字符串的哈希。

这些哈希等于对应 std::basic_string_view 类的哈希:若 S 是这些字 string 类型之一, SV 是对应的 string_view 类型,且 s 是 S 类型的对象,则 std::hash<S>()(s) == std::hash<SV>()(SV(s))

(C++17 起)

[编辑] 示例

下列代码显式使用于字符串上的哈希函数的一种可能输出:

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

输出:

325378910

[编辑] 参阅

(C++11)
哈希函数对象
(类模板) [编辑]