我有一个 Java 程序,我想将其转换为 C++。因此,Java 代码中使用了 Linkedhashmap
数据结构,我想将其转换为 C++。在 C++ 中是否有 LinkedHashmap
的等效数据类型?
我尝试使用 std::unordered_map
,但是它不保持插入的顺序。
原文由 emadalamoudi 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 Java 程序,我想将其转换为 C++。因此,Java 代码中使用了 Linkedhashmap
数据结构,我想将其转换为 C++。在 C++ 中是否有 LinkedHashmap
的等效数据类型?
我尝试使用 std::unordered_map
,但是它不保持插入的顺序。
原文由 emadalamoudi 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答875 阅读
1 回答939 阅读
1 回答975 阅读
1 回答736 阅读
1 回答839 阅读
C++ 不提供具有模仿 Java 的
LinkedHashMap<K,V>
行为的集合模板,因此您需要将顺序与映射分开维护。这可以通过将数据保存在
std::list<std::pair<K,V>>
中并保持单独的std::unordered_map<k,std::list::iterator<std::pair<K,V>>>
映射以通过键快速查找项目来实现:std::prev(list.end())
。std::list<std::pair<K,V>>
。