I have a std::map mymap
Now, if I insert values in the map like:
std::map <string, string> mymap;
mymap["first"] = "hi";
mymap["third"] = "how r you";
mymap["second"] = "hello";
Now I want to iterate over the map and print the value in sorted(keys) manner:
map<string, string>::iterator itr;
for(itr = mymap.begin(); itr != mymap.end(); itr++)
{
string newline = itr->second;
cout << newline << endl;
}
Output should be:
hi
hello
how r you
I thought that by default map stores in sorted keys manner but I'm getting the same order in output as I'm giving in input. Do I need to provide my sort function for this or need to do something extra before iterating over the map?
Best Answer
The elements in
std::map
are ordered (by default) byoperator<
applied to the key.The code you posted, with minor edits, worked for me as you expected:
Prints: