草庐IT

universal-hashing

全部标签

c++ - std::hash_set vs std::unordered_set,它们是一回事吗?

我知道hash_set是非标准的,而unordered_set是标准的。但是,我想知道,性能方面,两者之间有什么区别?为什么要分开存在? 最佳答案 C++标准规定的unordered_容器的复杂性要求基本上没有为实现留下太多空间,它必须是某种哈希表。该标准是在充分意识到大多数供应商已经将这些数据结构作为扩展部署的情况下编写的。编译器供应商通常将这些容器称为“HashMap”或“哈希集”,这可能是您所指的(标准中没有文字std::hash_set,但是我认为GCC在单独的命名空间中有一个,对于其他编译器也是如此)。编写新标准时,作者希

c++ - 为什么 std::hash 是结构而不是函数?

标准库将std::hash实现为专门用于不同类型的模板结构。它是这样使用的:#include#includeintmain(){std::hashhasher;std::cout我的问题是这种设计选择背后的原因是什么。为什么它没有作为模板函数实现并像这样使用:#include#includeintmain(){std::cout(1337) 最佳答案 有多种原因,每一个都足以选择:您可以部分特化类模板,但只能完全特化函数模板(至少到目前为止)。因此,您可以用std::hash替换整套相关模板参数。作为类模板。请注意,部分重载无济于事

c++ - 为什么 std::hash 是结构而不是函数?

标准库将std::hash实现为专门用于不同类型的模板结构。它是这样使用的:#include#includeintmain(){std::hashhasher;std::cout我的问题是这种设计选择背后的原因是什么。为什么它没有作为模板函数实现并像这样使用:#include#includeintmain(){std::cout(1337) 最佳答案 有多种原因,每一个都足以选择:您可以部分特化类模板,但只能完全特化函数模板(至少到目前为止)。因此,您可以用std::hash替换整套相关模板参数。作为类模板。请注意,部分重载无济于事

c++ - GCC 和 Clang 不在 C++17 中编译 std::hash<std::nullptr_t>

开启https://en.cppreference.com/w/cpp/utility/hash它说从C++17开始Eachstandardlibraryheaderthatdeclaresthetemplatestd::hashprovidesenabledspecializationsofstd::hashforstd::nullptr_tandallcv-unqualifiedarithmetictypes(includinganyextendedintegertypes),allenumerationtypes,andallpointertypes.所以,一个C++17兼容的编

c++ - GCC 和 Clang 不在 C++17 中编译 std::hash<std::nullptr_t>

开启https://en.cppreference.com/w/cpp/utility/hash它说从C++17开始Eachstandardlibraryheaderthatdeclaresthetemplatestd::hashprovidesenabledspecializationsofstd::hashforstd::nullptr_tandallcv-unqualifiedarithmetictypes(includinganyextendedintegertypes),allenumerationtypes,andallpointertypes.所以,一个C++17兼容的编

c++ - Visual Studio 2015 运行时依赖或如何摆脱 Universal CRT?

使用VisualStudio2015编译了几个.dll,并尝试部署在一些较旧的Windows7/64位上。还尝试猜测应用程序需要哪些dll才能启动并复制MSVCP140.DLL和VCRUNTIME140.DLL-但应用程序无法加载vs2015dll。开始分析出了什么问题-依赖遍历器显示了来自以下dll的依赖关系:API-MS-WIN-CRT-MATH-L1-1-0.DLLAPI-MS-WIN-CRT-HEAP-L1-1-0.DLLAPI-MS-WIN-CRT-CONVERT-L1-1-0.DLLAPI-MS-WIN-CRT-STRING-L1-1-0.DLLAPI-MS-WIN-CRT

c++ - Visual Studio 2015 运行时依赖或如何摆脱 Universal CRT?

使用VisualStudio2015编译了几个.dll,并尝试部署在一些较旧的Windows7/64位上。还尝试猜测应用程序需要哪些dll才能启动并复制MSVCP140.DLL和VCRUNTIME140.DLL-但应用程序无法加载vs2015dll。开始分析出了什么问题-依赖遍历器显示了来自以下dll的依赖关系:API-MS-WIN-CRT-MATH-L1-1-0.DLLAPI-MS-WIN-CRT-HEAP-L1-1-0.DLLAPI-MS-WIN-CRT-CONVERT-L1-1-0.DLLAPI-MS-WIN-CRT-STRING-L1-1-0.DLLAPI-MS-WIN-CRT

node.js - Angular4 + Universal + ng-bootstrap 出现 "Unexpected token import"错误

所以我升级到Angular4+,以便我可以利用通用包进行服务器端渲染以实现SEO目的。我在现有的Angular2+项目中通过将其升级到Angular4+来实现这一点,并从https://github.com/evertonrobertoauler/cli-universal-demo/commit/a2610286bd3db5d4f4cce4318d7c220c11963eb6进行了所有必要的配置。.我使用ng-bootstraphttps://ng-bootstrap.github.io/#/home只有一个区别(v1.0.0-alpha.22)。但是当我使用npmrunstart-

node.js - Angular4 + Universal + ng-bootstrap 出现 "Unexpected token import"错误

所以我升级到Angular4+,以便我可以利用通用包进行服务器端渲染以实现SEO目的。我在现有的Angular2+项目中通过将其升级到Angular4+来实现这一点,并从https://github.com/evertonrobertoauler/cli-universal-demo/commit/a2610286bd3db5d4f4cce4318d7c220c11963eb6进行了所有必要的配置。.我使用ng-bootstraphttps://ng-bootstrap.github.io/#/home只有一个区别(v1.0.0-alpha.22)。但是当我使用npmrunstart-

node.js - 使用 RxJs WebSocketSubject 和 Angular Universal 时出现 "ReferenceError: WebSocket is not defined"

我正在设置angular6.xuniveralproject为了利用其SSR(服务器端渲染)功能。在我的应用程序中,我使用RxJs使用websocket通信。更具体地说,我在我的Angular通用6.x项目中使用WebSocketSubject和webSocket,这在浏览器平台上运行良好。但是,在运行NodeWeb服务器(包含SSR内容(服务器端渲染))时,会引发错误:ReferenceError:WebSocketisnotdefined示例代码://notactuallycodefromthereproductionrepoimport{WebSocketSubject,webS