c++dictionarystdstdmap

How to find if a given key exists in a std::map


I'm trying to check if a given key is in a map and somewhat can't do it:

typedef map<string,string>::iterator mi;
map<string, string> m;
m.insert(make_pair("f","++--"));
pair<mi,mi> p = m.equal_range("f");//I'm not sure if equal_range does what I want
cout << p.first;//I'm getting error here

so how can I print what is in p?


Solution

  • Use map::find and map::end:

    if (m.find("f") == m.end()) {
      // not found
    } else {
      // found
    }