只要您的编译器和标准库支持 C++11 或更高版本,我可以在不提供自定义哈希函数的情况下声明带有类型pair
#include <iostream>
#include <unordered_map>
#include <utility>
int main() {
// Declare an unordered_map with pair<int, int> as key and int as value
std::unordered_map<std::pair<int, int>, int> myMap;
// Example usage:
myMap[{1, 2}] = 10;
myMap[{3, 4}] = 20;
// Accessing values
int value1 = myMap[{1, 2}];
int value2 = myMap[{3, 4}];
return 0;
}
当我在我的 MacBook 上用 clion 尝试它时,它总是提示如下错误:
错误:static_assert 由于要求“integral_constant
chatGPT 总是说它可以工作。我很困惑。
不要使用 ChatGPT,而是使用正确的参考,例如 https://en.cppreference.com/w/cpp/utility/hash。该页面列出了标准库提供的所有专业化,您可以清楚地看到
std::pair
不存在,因此您的代码不可能工作。该页面甚至包含一条注释说
注意:std::pair 和标准的额外专业化 容器类型以及组成哈希的实用函数是 可用在
boost::hash