std::hash (std::string, std::wstring, std::u8string, std::u16string, std::u32string, std::pmr::string, std::pmr::wstring, std::pmr::u8string, std::pmr::u16string, std::pmr::u32string)
提供: cppreference.com
< cpp | string | basic string
ヘッダ <string> で定義 | ||
template<>struct hash<std::string>; template<>struct hash<std::wstring>; | (C++11以上) | |
template<>struct hash<std::u8string>; | (C++20以上) | |
template<>struct hash<std::u16string>; template<>struct hash<std::u32string>; | (C++11以上) | |
template<>struct hash<std::pmr::string>; template<>struct hash<std::pmr::wstring>; | (C++20以上) | |
テンプレート std::hash の様々な文字列クラスに対する特殊化は、ユーザが文字列のハッシュを取得することを可能とします。
これらのハッシュは対応する std::basic_string_view クラスのハッシュと等しくなります。 S をこれらの文字列型のひとつ、 SV をそれに対応する文字列ビュー型、 s を S 型オブジェクトとした場合、 std::hash<S>()(s)==std::hash<SV>()(SV(s)) が成り立ちます。 | (C++17以上) |
[編集]例
以下のコードは文字列に対して使用したハッシュ関数の出力の一例を示します。
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';}
出力例:
3544599705012401047
[編集]関連項目
(C++11) | ハッシュ関数オブジェクト (クラステンプレート) |