草庐IT

report_hash

全部标签

c++ - std::hash 模板偏特化

我用模板写了一些类:template>classmy_list;我应该为这个类编写::std::hash特化。我怎样才能做到这一点?简单的偏特化:namespacestd{templateclasshash>{public:size_toperator()(constmy_list&x)const{return...;}};}但是我不能写简单的偏特化,因为它被C++ISO禁止:ISO/IEC14882Thirdedition2011-09-0117.6.4.2.1Namespacestd[namespace.std]2ThebehaviorofaC++programisundefine

c++ - 为什么 std::hash 不专用于 std::reference_wrapper?

我以为会是这样,但我在我的标准库实现(gcc-4.8.2)中找不到它。为什么std::hash还没有专门用于std::reference_wrapper?#pragmaonce#includenamespacestd{templatestructhash>{size_toperator()(constreference_wrapper&r)const{returnstd::hash()(r.get());}};} 最佳答案 std::reference_wrapper主要用于在默认复制值的实用程序中提供引用语义,例如std::bin

c++ - 基本 Qt 应用程序 : Reports Masive Leaks 上的 Valgrind

所以我想看看当通过Valgrind运行时,从简单的Makefile编译的基本Qt4应用程序会发生什么。什么会导致这些泄漏?我正在删除我这边的任何动态分配的对象。另外,退出程序时,我只单击右上角的关闭(X)。GUI库是否只是“free()”它们malloc()的任何内存?由qmake命令缩减的Makefile是:#######Compiler,toolsandoptionsCXX=g++CXXFLAGS=-pipe-O2-Wall-WLIBS_INCLUDE=${HOME}INCPATH=-I$(LIBS_INCLUDE)/QtSDK/Desktop/Qt/473/gcc/mkspecs

c++ - std::type_info::hash_code() 的唯一性和 "should"的含义

是否意味着要保证相同的std::type_info::hash_code()值表示相同的类型?Cplusplus.com似乎是这么说的:Thisfunctionreturnsthesamevalueforanytwotype_infoobjectsthatcompareequal,anddifferentvaluesfordistincttypesthatdonot.[Emphasismine]Cppreference似乎另有说法:Returnsanunspecifiedvalue,whichisidenticalforobjects,referringtothesametype.No

c++ - 如何修复 "<hash_map> is deprecated and will be REMOVED. Please use <unordered_map>"?

我正在学习C++,所以我正在阅读Programming:PrinciplesandPracticeusingC++这本书。我正在进行第一个练习,即如何制作“Hello,World!”。使用MicrosoftVisualStudio2015编写的程序。我使用了书中提供的源代码。#include"../../std_lib_facilities.h"//headerfilerecommendedbybookintmain()//C++programsstartbyexecutingthefunctionmain{cout但是,当我尝试构建一个可执行程序时收到两个错误,如下所示:Intell

c++ - 为什么 std::hash<T> 不专用于 char*?

为什么C++标准不指定std::hash专门用于char*,constchar*,unsignedchar*,constunsignedchar*,ETC?即,它将散列C字符串的内容,直到找到终止null。将我自己的特化注入(inject)std的任何危害我自己的代码的命名空间? 最佳答案 Whydoesn'ttheC++standardspecifythatstd::hashisspecializedforchar*,constchar*,unsignedchar*,constunsignedchar*,etc?看起来它起源于pr

c++ - std::hash 是否保证在 stdlib 发行版中相同

如果我使用libstdc++做了std::hash然后在即将到来的C++11VS2012库上做了一个-他们会匹配吗?我假设哈希实现不是C++规范的一部分,并且会因分布而异? 最佳答案 标准只说明了这一点:20.8.12ClasstemplatehashTheunorderedassociativecontainersdefinedin23.5usespecializationsoftheclasstemplatehashasthedefaulthashfunction.ForallobjecttypesKeyforwhichther

c++ - 用户类型的 hash<T> 仿函数属于哪个命名空间?

我不清楚C++11标准中用户定义的hash应定义仿函数。例如,在23.5.2Header,它显示:template,classPred=std::equal_to,classAlloc=std::allocator>>classunordered_map;这表明,默认情况下,hash在全局命名空间中搜索,而equal_to在std中搜索命名空间。为什么hash之间的命名空间不同?和equal_to?(实际上,在http://www.cplusplus.com/reference/unordered_map/unordered_map/的描述中,都没有指定std命名空间。)因此,在定义h

c++ - boost spirit : Lex + Qi error reporting

我正在为使用缩进等的相当复杂的配置文件编写解析器。我决定使用Lex将输入分解为标记,因为它似乎让生活更轻松。问题是我找不到任何将Qi错误报告工具(on_error)与对标记流而不是字符流进行操作的解析器一起使用的示例。要在on_error中使用的错误处理程序需要一些才能准确指示错误在输入流中的位置。所有例子都只是构造std::string从一对迭代器中打印出来。但是如果使用Lex,那么迭代器就是标记序列的迭代器,而不是字符。在我的程序中,这导致挂起std::string在我注意到无效的迭代器类型之前构造函数。据我所知,token可以将一对迭代器保存到输入流中作为它的值。这是默认属性类型

windows - EFS(加密文件系统): security concern: aren't password-related hashes stored on the hard drive

以下youtube视频很好地总结了EFS的工作原理。对于那些对我附上的此类窗口的内容摘要感兴趣的人它在下面。然而,这给我留下了一个关于安全的问题:当用户在Windows中登录时,可能会根据密码计算哈希值(或者从密码加上用户名和其他数据,例如作为盐)。当用户首次创建密码时,此类哈希必须存储在某处如果我没记错的话,在硬盘上。至少,旧的Unix系统曾经在这样的方式(用这样的方式存储在/etc/passwd中)。因此,当用户登录时,计算密码哈希值,并按顺序与存储在此类文件中的内容进行比较对用户进行身份验证。如果哈希值匹配,则用户已登录。到目前为止一切顺利。如果使用上述机制(在现代Windows