带有附加顺序的 C++ 字典/ map

标签 c++ stl map

我想要类似于 map 的东西,但在迭代时我希望它们的顺序与添加的顺序相同。

例子

map.insert("one", 1);
map.insert("two", 2);
map.insert("three", 3);

在迭代时,我希望项目像“一”、“二”、“三”一样。默认情况下, map 不提供这种添加顺序。如何按照我添加的方式获取 map 元素?我想保留广告订单。

任何带有 STL 的东西都可以,或者其他替代建议也可以。

最佳答案

A std::map that keep track of the order of insertion? 这是一个拷贝(感谢 neil butterworth)

您可以使用具有与其并行的排序结构的映射。

map<key, value>
vector<value*> //holds only pointers to map entries.
vector<key> //holds only map keys. Adds one indirection.

关于带有附加顺序的 C++ 字典/ map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2551905/

相关文章:

c++ - "hour"计数器不会重置,程序再次运行后

php - PHP 或 C 中的压缩和加密

c++ - 如何根据 STL 列表中的元素数量分配内存?

c++ - 在C++中如何将shared_ptr变量push_back到shared_ptrs vector ?

map - 我想在 map 中查看IP分布的kibana中的IP地址格式是什么?

c++ - 虚函数未解析为大多数派生类方法

c++ - std::stack 是使用双链表实现的吗?

java - 少量条目的 Java Map 最快实现

安卓自定义 map

c++ - 将 std::cin 直接重定向到 std::cout