您好,登錄后才能下訂單哦!
在C++中,有多種哈希算法可供選擇,這些算法通常與STL(標準模板庫)中的容器(如unordered_map和unordered_set)一起使用
#include <iostream>
#include <functional>
int main() {
std::hash<int> int_hash;
std::hash<std::string> str_hash;
int a = 42;
std::string s = "hello";
std::cout << "Hash of "<< a << ": " << int_hash(a) << std::endl;
std::cout << "Hash of \""<< s << "\": " << str_hash(s) << std::endl;
return 0;
}
#include <iostream>
#include <functional>
struct MyStruct {
int x;
int y;
};
namespace std {
template <>
struct hash<MyStruct> {
size_t operator()(const MyStruct& ms) const {
return hash<int>()(ms.x) ^ hash<int>()(ms.y);
}
};
}
int main() {
MyStruct ms = {42, 3.14};
std::unordered_map<MyStruct, std::string> my_map;
my_map[ms] = "Hello, world!";
std::cout << "Value for MyStruct(42, 3.14): " << my_map[ms] << std::endl;
return 0;
}
#include <iostream>
#include <boost/functional/hash.hpp>
struct MyStruct {
int x;
int y;
};
int main() {
MyStruct ms = {42, 3.14};
std::unordered_map<MyStruct, std::string, boost::hash<MyStruct>> my_map;
my_map[ms] = "Hello, world!";
std::cout << "Value for MyStruct(42, 3.14): " << my_map[ms] << std::endl;
return 0;
}
總之,C++提供了靈活的哈希算法支持,可以根據項目需求選擇合適的哈希函數。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。