c unordered_map键为pair
时间: 2023-10-15 16:24:21 浏览: 103
在C++中,可以使用unordered_map作为键的类型是pair。你可以在声明unordered_map时,将pair作为键的类型,然后传入自定义的hash函数来处理pair类型的键。在使用时,需要在unordered_map前加入代码块,并在声明unordered_map时将hash函数传入,示例如下:
```cpp
// 自定义hash函数
struct hash_pair {
template <class T1, class T2>
size_t operator()(const pair<T1, T2>& p) const {
auto hash1 = hash<T1>{}(p.first);
auto hash2 = hash<T2>{}(p.second);
return hash1 ^ hash2;
}
};
// 声明unordered_map
unordered_map<pair<string, string>, int, hash_pair> map_g;
```
这样就可以使用pair作为unordered_map的键了。注意,为了支持pair类型的键,需要手动传入一个hash函数来处理pair类型的键。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C++ 使用unordered_map, pair作为key](https://blog.csdn.net/weixin_36212725/article/details/118421706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [myostream:方便的输出,适用于所有可迭代项目的容器类型](https://download.csdn.net/download/weixin_42160645/16551376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文