我想在C++ STL中使用map来创建vector和int之间的关联.但是我得到了多个编译错误,代码如下:
#include <vector>
#include <map>
#include <unordered_map>
using namespace std;
int main(void)
{
unordered_map<vector<char>, int> mp;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并在VC++中得到此编译错误:
错误C2280:'std :: hash <_Kty> :: hash(const std :: hash <_Kty>&)':尝试引用已删除的函数
但是,如果我改变我的代码,如下所示,那么代码可以正确编译:
#include <vector>
#include <map>
#include <unordered_map>
using namespace std;
int main(void)
{
map<vector<char>, int> mp;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在StackoverFlow中发现了这个问题,其标题是:使用自定义类类型作为键的C++ unordered_map.但我想知道为什么使用map <>可以通过编译检查但无法使用unordered_map <>?