由于map是使用树和hash_map使用哈希实现的,我创建了一个代码来测试我的地图是否会给我一个有序的结果,而hash_map会按照它们的注册顺序打印我的例子
map<string, int> mymap;
hash_map<string, int> myhashmap;
mymap["lucas"] = 1;
mymap["abel"] = 2;
mymap["jose"] = 1;
myhashmap["lucas"] = 1;
myhashmap["abel"] = 2;
myhashmap["jose"] = 1;
for(map<string, int>::iterator it = mymap.begin(); it != mymap.end(); it++){
cout << it->first << " " << it->second << endl;
}
cout << endl;
for(hash_map<string, int>::iterator it = myhashmap.begin(); it != myhashmap.end(); it++){
cout << it->first << " " << it->second << endl;
}
但两个结果都是:
abel 2
jose 1
lucas 1
为什么hash_map给了我一个有序的结果?
答案 0 :(得分:3)
hash_map中没有订单保证 - 这意味着它可以将结果存储在任何顺序中,具体取决于实现。