Visual C++でちょっとハッシュ関数が欲しくなりました。VC++はhash_mapなどを持っているので、当然ハッシュ関数もあるだろうと睨んで正解、stdext名前空間にhash_value関数がありました。こんな感じに使えます。
#include <iostream> #include <string> #include <hash_set> void print_hash(std::string const& s) { std::cout << s << ": " << std::hex << stdext::hash_value(s) << std::endl; } int main() { print_hash("ABC"); print_hash("あいうえお"); } |
このhash_value関数はstd::size_t型を返します。少なくともstd::string, std::wstring, char const*, wchar_t const*, 整数型などに使えるようです。
スポンサード リンク |
この記事のカテゴリ
- VC++ ⇒ とりあえず、仮に、今だけ