错误:static_assert unordered_multimap的"This hash only works for enumeration types"失败
Error: static_assert failed "This hash only works for enumeration types" for unordered_multimap
我正在尝试插入
unordered_multimap<pair<int, int>, int>
一样:
unordered_multimap<pair<int, int>, int> tree;
auto firstPair=make_pair(firstNumber, secondNumber);
tree.insert(make_pair(firstPair, 0));
但是,编译器在编译时继续向我发出以下错误:
error: static_assert failed "This hash only works for enumeration types"
现在,在谷歌搜索和阅读了关于这个错误的其他问题(这个和这个)之后,我得出结论,我需要提供我自己的哈希函数。然而,这让我感到困惑,因为我读过的其他问题似乎涉及自定义(用户定义)类的键,而我不认为我使用的键类型是"自定义"的。如果有人能提供这方面的见解,我将不胜感激!
STL没有为std::pair
定义散列函数。所以你需要做同样的事情如果std::pair<int, int>
是你创建的类型。你应该声明你自己的std::hash
实现。
unordered_map<int, unordered_multimap<int, int>>
。
相关文章:
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- 如何修复输出日志中的"EnableInput can only be specified on a Pawn for its Controller"错误
- 如何理解"abstract-declarator containing an ellipsis shall only be used in a parameter-declaration"
- 开发QR扫描仪以扫描我生成的"only" QR码?
- Protobuf 生成的C++类无法针对 iOS 进行编译,并显示错误"Only virtual member functions can be marked 'final'"
- Windows 10 环境中的"This version of XAudio2 is available only in Windows 8"错误
- CUDA 内核"Only a single pack parameter is allowed"解决方法?
- 为什么仅 -fno-signed-0 就可以实现优化,而似乎也需要 -ffinite-math-only (gcc)
- 在 c++11 模式下使用 QtConcurrent::run with move only 参数
- 为什么这句话"The expression can be used only as the left-hand operand of a member function call"在 [expr.re
- 平息海湾合作委员会的"only available with -std=c++XX or -std=gnu++XX"警告
- 为什么 std::optional 不允许"move construct and copy assign only"类型的移动分配?
- 用 (float&)int works,(float const&)int 转换像 (float)int 代替?
- "useinbandfec is a unidirectional receive-only parameter"作品中是什么意思?
- Cocos2d-x removeChild works wierd
- 犰狳/ Xcode:无处"functions that differ only in their return type cannot be overloaded"错误
- 运行build_android.sh时" C compiler works... no"错误
- SDL_LoadBMP only returning NULL
- OpenCV SVM 在火车上抛出异常,"Bad argument (There is only a single class)"
- 错误:static_assert unordered_multimap的"This hash only works for enumeration types"失败