gpt4 book ai didi

java - 如何按输入顺序输出C++11 unordered_map/unordered_set和Java HashMap/HashSet值?

转载 作者:行者123 更新时间:2023-11-30 03:54:30 25 4
gpt4 key购买 nike

如何按键的输入顺序输出 HashMap 值?在 C++11 unordered_map 中,它不是有序的。查看C++引用页

http://www.cplusplus.com/reference/unordered_map/unordered_map/begin/

  mymap = {{"Australia","Canberra"},{"U.S.","Washington"},{"France","Paris"}};
std::cout << "mymap contains:";
for ( auto it = mymap.begin(); it != mymap.end(); ++it )
std::cout << " " << it->first << ":" << it->second;

输出序列为

我的 map 包含:法国:巴黎 澳大利亚:堪培拉 美国:华盛顿

但是我预计澳大利亚:堪培拉 美国:华盛顿 法国:巴黎

如何输出以上结果?以及如何在Java中实现(我在HashSet/HashMap中测试,键也没有订购)?

谢谢!

最佳答案

在Java中,您可以使用LinkedHashMapLinkedHashSet 。下面是一个 LinkedHashMap 的示例,它按照插入到映射中的顺序打印条目:

Map<String, String> map = new LinkedHashMap<>();
map.put("Australia", "Canberra");
map.put("U.S.", "Washington");
map.put("France", "Paris");
for (Map.Entry<String, String> e : map.entrySet()) {
System.out.printf("%s:%s\n", e.getKey(), e.getValue());
}
<小时/>

对于 C++,请查看 Boost Multi-Index Containers 。您可以在教程中关于 sequenced indices 的部分找到类似的示例。 。在您的情况下,它可能如下所示:

struct country
{
std::string name;
std::string capital;
};

multi_index_container<
country,
indexed_by<
hashed_unique<member<country,std::string,&country::name>>
sequenced<>>> countries;

关于java - 如何按输入顺序输出C++11 unordered_map/unordered_set和Java HashMap/HashSet值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com