gpt4 book ai didi

c++ - GUID 和哈希表 - 如何使用它们?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:29:19 28 4
gpt4 key购买 nike

我有几个 GUID,我想实现一个哈希表来快速检索它们。我该怎么做?

如果我将 GUID 视为哈希码,我需要做类似的事情

index = GUID % prime_number_that_covers_all_GUID_bits

但我不确定这样做是否正确。如何实现这样的哈希表?

最佳答案

你可以使用 std::unordered_map ,它需要一个 Key在你的情况下输入( GUID ),然后输入 Value类型,可以是一些用户信息或程序信息(取决于您的应用程序)。存储就像调用成员函数一样简单 insert()emplace()并通过调用 find() 来查找存储的值.

下面的例子使用了std::string作为您的 key 的基础类型,并且隐式地 std::hash<std::string>作为哈希函数。对于其他 GUID 类型,您可能需要滚动自己的哈希函数对象并将其作为模板参数传递给哈希表。

#include <iostream>
#include <ios>
#include <string>
#include <unordered_map>

typedef std::string GUID;

class UserInfo
{
public:
UserInfo(bool b): is_genius_(b) {}
bool is_genius() const { return is_genius_; }

private:
bool is_genius_;
// your stuff here
};

int main()
{
std::unordered_map<GUID, UserInfo> table;
GUID x = "Johnny Pauling";

// insert into table
table.emplace(x, UserInfo(true));

// lookup in table
auto it = table.find(x);

// if found, print it
if (it != table.end())
std::cout << std::boolalpha << it->second.is_genius();
}

LiveWorkSpace 上输出

关于c++ - GUID 和哈希表 - 如何使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14438621/

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