像javascript或python里这样的写法:
obj["attr1"]=1
按理在stl::map中应该也是可以的,于是我定义了一个这样的map:
map<char*,int> dict,
哪知问题就来了,明明放了一个元素进去:dict.insert(make_pair("main",12));
但是死活查找不到:
fun(char* p)
{
if(dict.find(p)==dict.end()) printf("no!");
}
p明明就是main,可是就是找不到,但是把find的实参直接写作“main”却又找得到!百思不解!
后来我终于给它找了个理由,那就是作为键的不是整个字符串,而仅是一个char*指针!添加时就用了静态全局变量"main"的地址,所以后来你用p去找怎么也不可能找得到,而换上"main"自己就行了,不知具体是不是这样呢???