这是我的代码
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数据结构?哪一个?
没有标准容器可以直接执行您想要的操作。如果你想保持插入顺序,最明显可以使用的容器是向量。如果您还需要按字符串查找,请使用向量和映射。该映射通常是字符串到向量索引,但由于您的数据已经是整数,您可能只想复制它,具体取决于您的用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)