C++字典/地图添加了顺序

3 c++ stl map

我希望有一些类似于map的东西但是在迭代时我希望它们的顺序与添加的顺序相同.

例

map.insert("one", 1);
map.insert("two", 2);
map.insert("three", 3);
Run Code Online (Sandbox Code Playgroud)

迭代时我希望项目像"一个",""两个","三个"..默认情况下,地图不提供这个添加的顺序.如何以我添加的方式获取地图元素?我想要保留广告订单.

STL的任何东西都很好或其他替代建议也没关系.

Ron*_*del 6

一个跟踪插入顺序的std :: map? 这是重复的(感谢neil butterworth)

您可以使用具有与其平行的排序结构的地图.

map<key, value>
vector<value*> //holds only pointers to map entries.
vector<key> //holds only map keys. Adds one indirection.
Run Code Online (Sandbox Code Playgroud)

  • 你不能有引用的向量,因为向量元素必须是可赋值的. (3认同)