#include <iostream>
#include <map>
using namespace std;
int main()
{
std::map<std::string,std::string> test;
test["aa"] = 1.55;
test["bb"] = 4000.55;
test["cc"] = "hhhh";
test.insert(make_pair("dd","66"));
cout << test["aa"] <<endl;
cout << test["bb"] <<endl;
cout << test["cc"] <<endl;
cout << test["dd"] <<endl;
cout << test["ee"] <<endl;
return 0;
}
程序运行结果如下图所示,test[“aa”] = 1.55 时候并不会报错,被当做ascii值处理了,有次去字节跳动面试谈到过这个问题,面试官认为我在胡说八道,违反了所谓强类型,咳咳咳,这就是另外一段很有意思的故事了。
同时我们也可知, test.insert(make_pair(“dd”,1)); 的写法在编译的时候会发生错误,无法通过类型检查,等有空探讨下更深刻的原因再来更新下。