对于不同编译版本和不同机器的相同输入,std::hash 是否给出相同的结果?

2024-01-15

我有一些随机测试参数,我需要计算哈希值来检测我是否使用相同的参数运行。我可能会使用在不同时间重新编译的相同源来运行测试,或者在不同的机器上运行。

即便如此,我想检测运行时是否使用了相同的参数。 做std::hash对于不同的编译版本和不同的机器,相同的输入会给出相同的结果吗?

e.g.

std::hash<string>{}("TestcaseParamVal0.7Param0.4");

这将始终是唯一的号码吗?


No, std::hash不保证跨计算机、构建甚至在同一计算机上执行相同构建的结果将是相同的。您唯一的保证是在一次执行期间,相等的对象具有相同的哈希值。 (当然,不能保证不相等的对象具有不同的哈希值。)

一些实现会不遗余力地在执行之间更改哈希结果,因为它可以减轻由于存在许多具有相同哈希的键时哈希表性能不佳而导致的拒绝服务风险。标准明确允许这样做,仅保证结果在程序持续时间内保持一致。

如果您需要执行和机器之间的可重复性,则不能使用std::hash并且必须推出自己的同等产品。

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

对于不同编译版本和不同机器的相同输入,std::hash 是否给出相同的结果? 的相关文章

随机推荐

  • IIS:在.net框架网站下托管.net Core应用程序

    在 ASPNET netframework 网站下托管 ASPNETCore 子应用程序 我有一个托管在 IIS 下的网站 该网站是在 ASP NET MVC 4 中开发的 目标是 NET Framework 4 0 我正在尝试在此网站下添
  • 什么是头等舱公民功能?

    什么是一等公民职能 Java支持一等公民函数吗 Edit 正如提到的维基百科 http en wikipedia org wiki First class function 一流的功能是必要的 对于函数式编程风格 一等函数还有其他用途吗 一
  • 如何在 Spark SQL 中对多个列进行透视?

    我需要在 PySpark 数据框中旋转多个列 示例数据框 from pyspark sql import functions as F d 100 1 23 10 100 2 45 11 100 3 67 12 100 4 78 13 10
  • CSS 样式表范围仅限于单个 svg 标签

    我有一个包含两个或多个 SVG 标签的网页 每个 SVG 标签都包含一个样式标签块 其中包含给定 SVG 元素的 CSS 样式 不幸的是 这些样式表似乎渗透到了全局样式中 例如 在第一个 SVG 元素上设置类 x1 的样式将导致第二个 SV
  • 从给定的二分图中查找所有最大完全二分子图

    给定一个二分图 我们想要列出所有最大完全二分子图 例如 顶点集 L A B C D 顶点集 R a b c d e 边 A a A b B a B b C c C d D c D d D e 最大完全二部为 A B a b C D c d
  • 如何让我的角色在按住跳跃时不飞

    我正在用 javascript 制作游戏 现在 当按住跳跃时 我的角色会不断跳跃 我希望他不要一直跳来跳去 即使保持跳跃 我怎样才能让他停止跳跃并在大约 2 秒后下降 我有重力 我放手后他就下来了 但我希望他自己下来 Player impo
  • 如何在标准 SQL 中将纪元时间戳转换为日期

    当我环顾四周时 我没有找到任何简单的答案 所以我想我会把它放在这里 以防有人遇到和我一样的问题 这本来是一个小问题 我正在将 ReDash 分析与 Google 的 BigQuery 结合使用 并且已打开标准SQL https cloud
  • 在 C#/.Net 中实现 SSH 服务器

    我们正在开发的一个项目刚刚添加了一个新要求 它必须能够使用密钥 对身份验证通过 SFTP SSH 接收文件 我们已经找到了一个有趣的 SSH 集合client库 例如 SSH Net 但没有服务器库 到目前为止 我们发现的最接近的是一个 P
  • 图像处理 - 将一张图像的曲线与另一张图像进行匹配

    我正在做类似这个问题的事情 将曲线图案与图像边缘匹配 https stackoverflow com questions 11729699 matching a curve pattern to the edges of an image
  • 如何配置 boost 日志,以进行旋转和追加写入?

    如何配置 boost 日志 以进行旋转和追加写入 并且重新启动程序后 不要清除日志文件 int init log typedef sinks synchronous sink lt sinks text file backend gt fi
  • 自定义 Lambda 排序扩展

    我想使用我的自定义扩展方法来订购对象列表 它只是一个示例 因此它使用冒泡排序 我目前的状态 public static IOrderedQueryable
  • LINQ To Entities 包含不区分大小写的搜索

    我正在尝试在 linq toEntity 中像这样查询我的结果集 var categoriesList catRepo GetAllCategories filteredCategories categoriesList Where c g
  • 在 R 中绘制带有颜色和频率的混淆矩阵

    我想绘制一个混淆矩阵 但是 我不想只使用热图 因为我认为它们的数值分辨率很差 相反 我还想绘制正方形中间的频率 例如 我喜欢这样的输出 library mlearning data Glass package mlbench Glass T
  • 如何从文件内容创建 Java 字符串?

    我使用下面这个习语已经有一段时间了 它似乎是最广泛的 至少在我访问过的网站上是这样 有没有更好 不同的方法在 Java 中将文件读入字符串 private String readFile String file throws IOExcep
  • 使用命令提示符复制文件夹并重命名它

    我正在尝试复制一个文件夹并将其粘贴到从中复制的同一目录中 例如 C Test 是由文件夹 ACDM 组成的主目录 我想将 ACDM 复制到同一目录中并将新文件夹重命名为 ACDM1 其中包含与 ACDM 相同的所有文件 我想使用命令提示符来
  • 当表仅包含一行时 StDev() 函数返回 Null

    我正在尝试使用 StDev 函数 但得到空白结果 我用它作为 SELECT StDev fldMean FROM myTable 其中 fldMean 包含值 2 3 并且应计算为 0 但我只是得到一个空结果 我似乎无法理解如何在函数中使用
  • 如何在 ruby​​ 中批量重命名文件

    我一直在尝试编写一个基于ruby的文件重命名程序 作为自己的编程练习 我知道linux下有rename 但我想学习Ruby 而rename在Mac上不可用 从下面的代码来看 问题在于 include 即使我看到文件名包含这样的搜索模式 方法
  • 消除双向递归关系的最简单方法?

    我用Gson http code google com p google gson 将 Java 对象转换为 Json 响应的库 问题是 在 JPA 请求后 由于与其他实体的递归关系 无法转换从 DB 检索的对象 看我之前的问题 https
  • 如何将一张图像叠加到另一张图像上?

    我想显示由以下内容组成的图像two images 我想要图像矩形 png用图像显示贴纸 png on top它与它的左手像素 10 10 处的角点 据我所知 但是如何组合图像 Image image new Image image Sour
  • 对于不同编译版本和不同机器的相同输入,std::hash 是否给出相同的结果?

    我有一些随机测试参数 我需要计算哈希值来检测我是否使用相同的参数运行 我可能会使用在不同时间重新编译的相同源来运行测试 或者在不同的机器上运行 即便如此 我想检测运行时是否使用了相同的参数 做std hash对于不同的编译版本和不同的机器