我目前有一个std::map<std::string,int>存储整数值到唯一字符串标识符,我确实查找字符串.它主要是我想要的,除了它不跟踪插入顺序.因此,当我迭代地图以打印出值时,它们将根据字符串进行排序; 但是我希望它们按照(第一次)插入的顺序排序.
我想过使用一个vector<pair<string,int>>替代,但我需要查找字符串并将整数值增加大约10,000,000次,所以我不知道是否std::vector会明显变慢.
有没有办法使用std::map或是否有std更适合我需要的容器?
[我在GCC 3.4上,我的价值可能不超过50对std::map].
谢谢.
我有一个std :: vector,我需要通过选定的算法对某些操作进行排序,但是在剩下的时间内保持其原始状态(例如,在输入时排序的项目).
显然我可以使用std :: copy来创建一个临时向量并对其进行排序,但我想知道是否有更好的方法,可能是通过时间戳输入的项目.
干杯
我unordered_map用这段代码插入了元素:
myMap.insert(std::make_pair("A", 10));
myMap.insert(std::make_pair("B", 11));
myMap.insert(std::make_pair("C", 12));
myMap.insert(std::make_pair("D", 13));
Run Code Online (Sandbox Code Playgroud)
但是当我用这个命令来打印键时
for (const auto i : myMap)
{
cout << i.first << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
它们与插入它们的顺序不同.
是否可以保留订单?