C++ STL map I don't want it to sort!
c++, stl
Solution
There is no standard container that does directly what you want. The obvious container to use if you want to maintain insertion order is a vector. If you also need look up by string, use a vector AND a map. The map would in general be of string to vector index, but as your data is already integers you might just want to duplicate it, depending on your use case.
Problem
This is my code ``` map<string,int> persons; persons["B"] = 123; persons["A"] = 321; for(map<string,int>::iterator i = persons.begin(); i!=persons.end(); ++i) { cout<< (*i).first << ":"<<(*i).second<<endl; } ``` Expected output: ``` B:123 A:321 ``` But output it gives is: ``` A:321 B:123 ``` I want it to maintain the order in which keys and values were inserted in the `map<string,int>`. Is it possible? Or should I use some other STL data structure? Which one?