在C++11中,std::unordered_map::operator[]有两个版本,分别为:
mapped_type& operator[] ( const key_type& k ); //1
mapped_type& operator[] ( key_type&& k ); //2
有两个问题:
1)为什么第二个问题是必需的 - 第一个问题允许将常量传递给函数,因为第一个问题包含关键字const
2)例如,在这种情况下将调用哪个版本:1或2?
std::unordered_map<std::string, int> testmap;
testmap["test"] = 1;