私はコンピュータサイエンスの新人です。これはハッシュ関数と関係があると思います。誰かがクラスから整数キーを作成する方法を提案できますか?
私は、CPP内のクラスがあります。今
class Car{
public:
int fleetId;
OwnershipEnum owner;
int buildDate;
bool hasFourDoors;
... with many other members
};
を、私の問題は、「科学的に」私はリスト4人のメンバーに基づいて、整数キーを生成する方法、ありますか?私は簡単な方法を考えることができ
、10000*int(fleetId) + 1000 * int(owner) + 100×int(buildDate) + int(hasFourDoors)
私はキーが連続している理想的だと思うので、私は、アレイ内のすべての車のオブジェクトを格納し、これを直接車のオブジェクトにアクセスするための鍵を生成し使用することができます。
*****コメントあたりとして:車はすべて異なっている、
を********全く同じ車はありません*****これら四つのメンバーは静的です:彼らは勝ちました作成後に変更する*****
誰も私にここで適切な解決策を教えてもらえますか?
おかげ
2つの異なる 'Car'インスタンスがsaを共有できるか私の鍵? – Bathsheba
各フィールドの値の範囲が小さい場合を除き、すべてのキーが異なることを一般的に保証することはできません。ハッシュの衝突を許可する必要があります。 – Barmar
キーの目的は、オブジェクトを一意に識別することです。これは、 'isGoodCondition'と' isBooked'はキーにインクルードするのに適していないことを意味します。なぜなら、これらの値は時間とともに変化するからです。車の場合、登録簿と登録日のようなものはそれを識別するのに十分なものでなければなりません。 – jsheeran