Java hashCode () эквивалент в c ++ - PullRequest
1 голос
/ 12 апреля 2020

Java есть метод внутри каждого класса, называемый hashCode (), который возвращает число. Есть ли способ получить это с ++? Я попробовал std :: ha sh <> из stl, но он не работает для классов, только для примитивных типов. например:

Person p;
hash<Person> hs;
cout<<hs(p); // if i replace Person with `int, vector<bool> etc` it works 

1 Ответ

1 голос
/ 12 апреля 2020

В C ++ у вас нет по умолчанию метода кода ha sh.
Причина, по которой работает std :: ha sh, заключается в том, что std :: ha sh имеет определенную реализацию для этого типа.
Чтобы определить вашу реализацию ha sh, вы можете посмотреть этот сайт: https://de.cppreference.com/w/cpp/utility/hash

Общее уведомление:
Я настоятельно рекомендую вам сойти с ума со своими java мыслями, поскольку Java и C ++ - два совершенно разных языка с разными понятиями. Я рекомендую начать обучение с нуля, за исключением того, что вы уже знаете, как решать проблемы и как писать код. (По крайней мере, так я и сделал)

...