Поскольку карты осуществляется с использованием дерева и hash_map используя хэш, я создал код, чтобы проверить, если моя карта даст мне заказанный результат и hash_map бы напечатать мои примеры в том порядке, что они были зарегистрированыC++: Почему мой 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 дал мне заказанный результат?
Это чистое совпадение. Добавьте больше строк, чтобы увидеть, как они в конечном итоге выходят из строя. – dasblinkenlight
Я прокатил шестигранную кубику дважды, и она подошла 1 и 2. Разве это не было более случайным? – Angew
Откуда вы знаете, что его заказали по имени, а не по хэшу? – molbdnilo