问题标签 [stdhash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为什么 std::Hash 对于不同的字符串相等?
为什么 std::Hash 对于不同的字符串有相同的结果?我使用了 msvc2010sp1,当看到这个结果时我很惊讶:
输出:
有人知道为什么会这样吗?
ps 此示例适用于 msvc2013 update1
c++ - c++ std::hash specilization trait compile error
hi i am tryng to implement a trait class of std::hash struct but i cannot progress from here:
c++ - 使用c ++ 11时clang ++无法找到std :: hash
我正在尝试在 FreeBSD 9.2 上编译一些软件,但遇到了问题。我自己不是 C++ 开发人员,而且显然无法在谷歌中找到合适的内容,我一直无法解决这个问题。
开发人员将 -std=c++0x 插入到 CXXFLAGS 中,但 FreeBSD 上的 g++ 版本不支持。根据我在谷歌上找到的建议,我已经使用 clang++ 将其切换到 c++11,但我仍然遇到这个问题:
我没有理由相信这仅限于 std::hash 的问题 .. 这只是失败的第一件事。另一方面..也许这是唯一的问题。
我找到了很多关于为什么使用 std::* 而不是“使用命名空间”的建议,以及很多关于如何编写代码以避免出现此类问题的建议,而不是关于如何处理的建议在现有项目中使用此功能。我无法在整个项目中重构代码。
我希望我在这里遗漏了一些简单的东西,可以让我编译它。谁能指出我正确的文档?
c++ - 专用于私有成员类的 std::hash
我有一个类(称为它Outer
),它有一个私有成员类(Inner
)。我想将 的实例存储Outer::Inner
在无序的标准容器中,所以我想专门化std::hash<Outer::Inner>
.
但是,在编写此代码时:
编译器抱怨:
我试图std::hash
通过遵循这个答案来建立一个朋友结构,但这也不起作用:Outer::Inner
失败的前向声明:
那么我应该如何进行(如果我打算做的事情是可能的)?
c++ - 覆盖 std::hash使用谷歌的城市哈希
所以,简单的问题,因为我有一个脑死的时刻.. 我怎样才能覆盖/替换std::hash<std::string>
使用谷歌的城市哈希?
我目前的方法是有一个包装器std::string
,然后专门std::hash<>
针对它。但这很痛苦,因为我必须实现几乎相同的接口,std::string
并且我想避免这种情况。
c++ - 专门化 std::hash对于依赖类型
我已经定义了这个模板类结构:
我想将Inner
对象放入一个unordered_map
(实际上,不是直接将它们而是它们的容器,因此直接在模板参数上指定散列对象的方法unordered_map
不是一个好主意),因此我想hash
为这些项目专门化类。
这不起作用,因为编译器无法Outer<T>::Inner
与实例化时指定的类型匹配hash
:
有谁知道解决这个问题?
c++ - const 和非 const 类型的部分 std::hash 特化
我在std::hash
为我的一个类做部分专业化的一些代码时遇到了麻烦。这是一个自包含的示例。
编辑:感谢 Piotr,我更改了代码以包含修复程序,但错误仍然存在。
如果使用 (g++ 4.9.0) 编译它:
我不明白为什么我会得到:error: invalid conversion from 'const A*' to 'A*' [-fpermissive]
。关于改进代码的任何建议?考虑到模板主体是相同的A
,必须为两者专门化散列似乎很奇怪。const A
c++ - 无法对指向成员的指针使用 std::hash 的特化?
我假设 std::hash 对泛型指针类型的专门化可用于指向成员的指针,但是我不能这样使用它;相反,我的编译器给了我一个“不完整类型”错误,我认为这意味着'没有使用 std::hash 的专门化指针?这里发生了什么?
错误:
c++ - 使用 std::hash()(std::this_thread::get_id())
我目前正在努力让 C++ 应用程序在 Windows 和 Linux 中编译,在一些调试过程中我发现
不能在带有 gcc 4.8 的 Linux 上编译(感谢此线程中的评论)。建议的解决方法是使用:
有谁知道这些是否产生相同的输出?
c++ - 如何使用 std::hash 对缓冲区进行散列?
我研究std::hash
了 的参考资料,发现它不能散列序列化数据,例如char*
. 是正确的还是正常的?如何散列序列化缓冲区?