按值访问地图时遇到问题。我不想使用find("string_value")
访问该值,但是如find(s)
而string s="string_value"
。请看下图:按值访问STL地图
map<string, string> my_map;
string s;
map<string, string>::iterator it_;
for(it_ = my_map.begin(); it_!= my_map.end(); it_++)
{
s = it_->second;
if (my_map.find(s) != my_map.end()) cout << my_map.find(s)->second << endl;
}
我最初的猜测是,find()
接受常量的值,而it_->second
不是。所以即使我的地图有价值,如果条件失败。虽然没有编译时错误。任何帮助?
我不明白你为什么遍历地图找到你已经指向的值... – 2013-05-13 22:32:40
'std :: map'建模一个从键到值的映射 - 这是一种单向关系。您不能使用该值来获取相应的密钥。 – 2013-05-13 22:32:41
你的初步猜测是错误的,因为比较并不关心常量。 – 2013-05-13 22:33:29