这是我的代码
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;
}
预期输出:
B:123
A:321
但它给出的输出是:
A:321
B:123
我希望它保持在 map<string,int>
中插入键和值的顺序。
可能吗?还是我应该使用其他一些 STL 数据结构?哪一个?
原文由 Pratik Deoghare 发布,翻译遵循 CC BY-SA 4.0 许可协议
没有标准容器可以直接执行您想要的操作。如果要保持插入顺序,显而易见的容器是向量。如果您还需要按字符串查找,请使用矢量和地图。该映射通常是字符串到矢量索引,但由于您的数据已经是整数,您可能只想复制它,具体取决于您的用例。