从 boost::hash 获取 32 位哈希值

2024-02-22

我在用boost::hash获取字符串的哈希值。 但它在 Windows 32 位和 Debian 64 位系统上为同一字符串提供不同的哈希值。

那么我怎样才能使用相同的哈希值(32位或64位)boost::hash与平台无关?


与什么有关的保证boost::hash?我没有看到任何 保证生成的哈希码可以在外部使用 生成它的过程。 (这种情况经常出现在 哈希函数。)如果您需要外部数据的哈希值, 在不同的程序和不同的平台上有效(例如 对磁盘上数据的哈希访问),那么你必须编写你的 自己的。就像是:

uint32_t
hash( std::string const& key )
{
    uint32_t results = 12345;
    for ( auto current = key.begin(); current != key.end(); ++ current ) {
        results = 127 * results + static_cast<unsigned char>( *current );
    }
    return results;

}

应该可以解决问题,只要你不用担心 移植到一些奇异的大型机(可能不支持uint32_t).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 boost::hash 获取 32 位哈希值 的相关文章

  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • Android:无法使用 CustomAdapter 刷新 Listview

    我需要用新数据刷新列表视图 下面这段代码用于获取数据OnCreateView那是在FragmentActivity在第一时间 override fun onCreateView inflater LayoutInflater contain
  • 多处理管道 send() 块

    根据Python文档 只有recv 阻止但不阻止send 我编写了以下代码尝试制作 GUI 数独游戏 我这样做的方式是即使我可以更新游戏板tkinter正在执行其mainloop 然而 在测试运行过程中 我发现如果我在游戏更新时关闭窗口 p
  • 跨域 AJAX/Javascript - 人为地使用 sessionid

    我目前有一个 RESTful Web 服务 它通过会话识别客户端 我有一个客户端 它使用 ajax javascript 来访问 RESTful Web 服务的内容 我通过使用标头响应请求来允许这种情况发生 Access Control A
  • Python套接字:无效的起始字节

    我正在使用 Python 套接字来接收文件 但是 有时我会收到以下错误 Traceback most recent call last File C Users Sharkoon Nextcloud Elektronik pythonPro
  • 在渲染期间设置 glTexParameteri() 是否不好?

    我面临纹理包裹问题 这会导致伪影 由于我的代码库已经变得巨大 我能想到的唯一方法是执行某些检查 看看某些纹理是否属于导致伪影的类别 并在绘制到渲染缓冲区之前更改参数 那么一般情况下是可以的吗 设置参数 例如 glTexParameteri
  • 找不到任何要加载的固定装置服务

    我知道这个问题已经被问过多次 Symfony 3 4 和 Fixtures Bundle 捆绑版本 3 0 存在问题 https stackoverflow com questions 50252845 symfony 3 4 and fi
  • 在 64 位系统上向 Linux Kernel 3.13 添加新的系统调用

    我正在尝试添加一个简单的helloworld系统调用kernel 3 13 0 37 generic在 64 位系统上 我将尝试逐步展示到目前为止我所做的事情 1 我已经通过以下方式下载了内核源代码 sudo apt get source
  • Haskell 中句柄是半封闭错误?

    我在 GHCI 中收到此错误 Exception
  • KeyError:“没有 [Int64Index([ 12313,\n , 34534],\n dtype='int64', leng

    官方指南 我正在尝试使用官方 scikitlern 的最新示例代码分层K折 https scikit learn org stable modules generated sklearn model selection Stratified
  • 创建项目后可以在android studio中更改公司域名吗?

    当我在 android studio 中创建 android 项目时 我发现了字段 公司域名 我首先使用一些名称创建了该字段 现在我想更改该公司的域名 可以改变吗 请帮我解决这个问题 您可以使用以下步骤更改域 对于您的示例 您正在尝试更改域
  • 将函数局部变量导出到环境

    考虑以下代码 usr bin bash t export declare dummy Hello export dummy echo dummy dummy echo printenv dummy printenv dummy t expo
  • C++0x const RValue 引用作为函数参数

    我试图理解为什么有人会编写一个需要常量右值引用 在下面的代码示例中 const 右值引用函数 返回 3 的用途是什么 为什么重载解析优先考虑 const Rvalue 而不是 const LValue 引用函数 返回 2 include
  • 如何将列表中的每个项目与其余项目仅比较一次?

    假设我有一个要比较的数组 列表 在我更熟悉的语言中 我会做类似的事情 for int i 0 i lt mylist size i for int j i 1 j lt mylist size j compare mylist i myli
  • 如何使用 OpenSSL 安装使 QSslSocket 支持 SSL?

    我正在尝试运行一个简单的客户端 服务器来使用 QSslSocket 实现通信 我在 Windows 上工作 不幸的是 为了更方便我使用 QtCreator 当我尝试从客户端使用连接到服务器时MyQSslSocket gt connectTo
  • 有没有验证 SQL 语法的 Java 库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 连接字符串中的经典 ASP 集成安全性

    我有旧的经典 ASP 应用程序 不是 asp net 需要对其进行配置才能使用 Microsoft SQL Server 2008 它与以下配置字符串配合使用效果很好 SERVER myServer DRIVER SQL SERVER DA
  • 有没有办法全局排除 Maven 依赖项?

    我试图找到一种 通用 方法来排除传递依赖项 而不必将其从依赖于它的所有依赖项中排除 例如 如果我想排除 slf4j 我会执行以下操作
  • QTreeWidget(为项目应用样式)

    我有一个树小部件 树中有三个级别 如下所示 Example Tree LEVEL1 LEVEL2 LEVEL2 LEVEL3 LEVEL3 LEVEL2 LEVEL2 LEVEL1 我想根据项目的级别应用不同的样式 以便我可以对 LEVEL
  • 如何为laravel的基本URL设置子目录?

    通常 laravel 会自动检测基本 url 但是 当在控制台中通过命令行调用该函数时 这是不可能的 因此 根据path to laravel folder public config app php 有一个名为url 根据官方注释 应该是
  • 从 boost::hash 获取 32 位哈希值

    我在用boost hash获取字符串的哈希值 但它在 Windows 32 位和 Debian 64 位系统上为同一字符串提供不同的哈希值 那么我怎样才能使用相同的哈希值 32位或64位 boost hash与平台无关 与什么有关的保证bo