【发布时间】:2015-12-21 04:31:32
【问题描述】:
我想制作一个地图,其中包含 int[27] 形式的数组作为键,所以我尝试了以下方法:
#include <map>
using namespace std;
map<int[27] ,int> mapa;
int n[27];
int main(){
mapa[n]++;
}
但我得到一个错误,是因为数组不能用作地图的键类型吗?
在这种情况下我能做什么?如果我使用向量而不是数组,它会起作用吗?
这是建议吗?
#include <cstdio>
#include <map>
using namespace std;
map<array<int,27> ,int> mapa;
int n[27];
int main(){
mapa[n]++;
}
这是有效的版本:
#include <cstdio>
#include <map>
#include <array>
using namespace std;
map<array<int,27>, int> mapa;
array<int,27> v;
int main(){
mapa[v]++;
printf("%d\n",mapa[v]);
}
【问题讨论】:
-
改用
map<std::array<int,27> ,int> mapa;。 -
它说mapa没有在这个范围内声明。
-
添加
#include <array>
标签: c++ arrays dictionary key