c++ - std::pair 的 unordered_map
问题描述
我想为 std::pair 对象创建一个映射,该映射将通过其字段的值比较对象。在对 stackoverflow 进行一些研究后,我已经实现了以下代码,但找不到我正在寻找的答案。
我收到 songHasher 运算符重载程序的编译错误,但不确定我的实现是否是它的原因。
class song { ... };
struct songHasher {
size_t operator()(std::pair<int, int> a) const noexcept {
return (size_t) a.first ^ a.second;
}
};
struct songComparator {
bool operator()(const std::pair<int, int> & a, const std::pair<int, int> &b) const {
return a.first == b.first && a.second == b.seconds;
}
};
std::unordered_map<
std::pair<int, int>,
song*,
songHasher,
songComparator> albumMap;
谢谢。
解决方案
推荐阅读
- c - 指向不完整类型的循环结构指针
- c# - 如何将一个 IEnumerable 异步转换为另一个,就像 LINQ 的 Select() 一样,但在每个转换后的项目上都使用 await?
- javascript - Bundle.js ReactJS 文件美化
- vba - excel VBA中的错误451(未定义属性让程序...)
- python - 从特定于标题的不同网页中抓取数据
- vba - 括号阻止函数运行
- python - 使用 importlib 动态导入包含相对导入的模块
- sql - 触发器没有被调用,为什么?
- spring - 如何在 Spring Boot Security 2.0 中使用 2 种不同的身份验证方法
- c# - Xamarin 启动