gpt4 book ai didi

c++ - 谁能建议一种从类中创建整数键的方法?

转载 作者:太空狗 更新时间:2023-10-29 20:21:12 25 4
gpt4 key购买 nike

我是计算机科学的新手,我猜这与哈希函数有关。

我有一个 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)

我认为理想情况下 key 是连续的,所以我可以将所有 Car 对象存储在一个数组中并使用这个生成的 key 直接访问汽车对象。

***** 根据评论:车都是不同的,没有完全相同的车 ********

***** 这四个成员是静态的:创建后不会改变*****

谁能在这里指出正确的解决方案?

谢谢

最佳答案

您可以构建一个方法来获取它,使用 std::hash:这只是一个简单的例子。

std::size_t CarHash(const Car& car)
{
std::size_t h1 = std::hash<int>{}(car.fleetId);
std::size_t h2 = std::hash<int>{}(int(car.owner));
std::size_t h3 = std::hash<int>{}(int(car.isGoodCondition));
std::size_t h4 = std::hash<int>{}(int(car.isBooked));
return h1^(h2 << 1)^(h3 << 2)^(h4 << 3);
}

关于c++ - 谁能建议一种从类中创建整数键的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45161742/

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