我正在关注http://www.cplusplus.com/reference/map/map/map/。
我正在尝试构建一个反转索引结构,它是一个以 64 位整数作为键的映射,每个键将包含一个指向 sub-map 的指针。子映射将包含 int int 对。所以我让自己写了一些示例:
map<unsigned long long int, map<int, int>*> invertID;
int main(int argc, char *argv[]){
map<int,int>* m = new map<int,int>();
m[10] = 1;
invertID[1] = m;
return 0;
}
但是,通常情况下,对于像这样的非指针类型映射来说,这是一个麻烦
std::map<char,int> first;
如http://www.cplusplus.com/reference/map/map/map/中所述,我看到我们可以做到
first['a']= 10;
但是,如果我们有一个 map 的指针类型,我们该怎么做呢?我上面的代码会产生一个错误抱怨
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)