本文主要是介绍std::unordered_map主键为结构体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
std::unordered_map为hashmap,如果直接使用结构体作为key值,编译时会报错,需要自己定义结构体的hash值的计算方法。
// 自定义结构体
struct MyStruct {size_t handle;size_t getHashValue() {return handle;}
}// 定义结构体的hash值计算方法
template<>
struct std::hash<MyStruct>
{size_t operator()(const MyStruct& rhs) const noexcept {return rhs.getHashValue(); }
};// insert value
std::unordered_map<MyStruct, std::string> mapData;
MyHandle k;
k.handle = 100;
mapData.insert({k, "123"});
这篇关于std::unordered_map主键为结构体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!