Finding value in unordered_map
c++, stl
Solution
How about the following:
typedef std::unordered_map<int,std::string> map_type;
typedef std::unordered_map<int,std::string>::value_type map_value_type;
map_type m;
if (m.end() != find_if(m.begin(),m.end(),[](const map_value_type& vt)
{ return vt.second == "abc"; }
))
std::cout << "Value found." << std::end;
else
std::cout << "Value NOT found." << std::end;
Or using an external variable that is captured:
std::string value = "abc";
if (m.end() != find_if(m.begin(),m.end(),[&value](const map_value_type& vt)
{ return vt.second == value; }))
std::cout << "Value found." << std::end;
else
std::cout << "Value NOT found." << std::end;
Problem
I am using Boost unordered_map. I have a key value pair for each entry. How could I determine whether a particular value exist in the map? (I don't want to create another unordered_map which stored the value as key and key as value) Thanks.