草庐IT

HASH_ALGORITHM

全部标签

c++ - 如何将更新的 git-hash 嵌入到 Version.hpp 中?

原标题:如何让git忽略我的文件而不考虑分支?我有以下按预期工作的checkout后文件:#!/usr/bin/rubycmd=ENV["HOME"]+"/dev/pitbull/cpp/bin/gen_version.rb--write"`#{cmd}`gen_version.rb脚本计算出时间戳、最后一个主标记和HEADgit哈希并写入同样在git中的VERSION.hpp文件。然后我使用usegitupdate-index--assume-unchangedVERSION.hpp让git忽略我的更改。现在,如果我留在我的开发分支上,这会很好用。但是当我尝试getcheckoutm

Redis 数据类型及其常用命令一(string、list、set、zset、hash)

1、简介    Redis的常用数据类型有十种,分别为:string、list、set、zset、hash、geo、hyperloglog、bitmap、bitfield、stream。熟练使用各种数据类型,能够快速结合场景进行使用。注:我们所说的数据类型是指value的数据类型,key都是字符串。所有类型的命令查看:help@数据类型;例如help@string2、Redis的key常用命令#1、查看当前库所有keykeys*#2、判断某个key是否存在existskey#3、查看key的类型是什么typekey#4、删除指定的key,会发生阻塞delkey#5、非阻塞删除,仅仅将key从k

c++ - 为派生类专门化 std::hash 在 gcc 中工作,而不是 clang

我正在尝试为派生类专门化std::hash。目前最好的方法是基于thisanswer:#include#include#includenamespacefoo{templateusingfirst=T;structhashable{};structbar:publichashable{};}namespacestd{templatestructhash::value>>>{size_toperator()(constT&x)const{return13;}};}intmain(){std::unordered_setbaz;return0;}使用g++5.2.0编译时没有警告(-Wal

c++ - 如何将 hash_map 与 char* 一起使用并进行字符串比较?

我正在使用std::hash_map并以某种方式设法使其工作,但现在发现默认的比较功能euqal_to进行指针比较而不是字符串比较。我已经通过制作我自己的比较类型(使用C的strcmp并且它大约是5LOC)来解决这个问题,但是如果STL中还没有一个比较类型,我会感到有点震惊。那么,有没有比较器可以做字符串比较呢?Relatedlink 最佳答案 嗯,std::strcmp当你执行#include时由C++定义.SGI'shash_mapdoc中的示例提供一个strcmp-基于为char*制作自己的相等性测试函数的示例(引用自SGI文

c++ - 为依赖类型特化 std::hash<T>

我已经定义了这个模板类结构:templatestructOuter{structInner{/*...somestuff...*/};};我想把Inner对象变成unordered_map(实际上,不是直接指定它们,而是它们的容器,因此直接在unordered_map的模板参数上指定散列对象的方法不是一个好主意),因此我想专门化hash这些项目的类。这行不通,因为编译器无法匹配Outer::Inner使用实例化时指定的类型hash:namespacestd{templatestructhash::Inner>{size_toperator()(typenameOuter::Innerc

c++ - 在 C++ 中使用 std::algorithm 输出 `std::multiset` 的唯一元素及其频率(无循环)

我在C++中有以下multiset:templateclassCompareWords{public:booloperator()(Ts1,Ts2){if(s1.length()==s2.length()){return(s1>mySet;typedefstd::multiset>::iteratormySetItr;mySetmWords;我想在集合中打印一次std::string类型的每个唯一元素,然后在我想打印的元素旁边打印它在列表中出现的次数(频率),就像你一样可以看到仿函数“CompareWord”保持集合排序。提出解决方案here,但这不是我需要的,因为我正在寻找不使用(w

c++ - Concurrent_hash_map 实现抛出 SIGSEGV

我正在尝试使用tbb的concurrent_hash_map来提高我的应用程序的并发性能。阅读它并根据我的应用程序实现它,但我看到崩溃..因此,我的应用程序是一个多线程应用程序,我在其中存储对,键是char*,值是整数。伪代码如下所示:在.h文件中,typedeftbb::concurrent_hash_maptbb_concurrent_hash;tbb_concurrent_hashconcurrent_hash_table;tbb_concurrent_hash::accessorwrite_lock;tbb_concurrent_hash::const_accessorread

c++ - std::hash 专门化我自己的类并在类中使用它

我定义了一个类Foo,并希望有一个采用std::unordered_set的公共(public)成员函数作为参数类型。能够使用std::unordered_set,我必须专攻std::hash在命名空间标准中。如果我不尝试使用std::unordered_set也没关系作为Foo中的参数类型成员函数。但是,一旦我想使用std::unordered_set作为Foo中的参数类型成员函数,我在定义特化时遇到问题std::hash.如果我在Foo之后做声明,Foo上有错误声明因为std::hash没有定义。一招std::hash之前的定义,它也不起作用,因为现在Foo未知。Foo的转发声明在

c++ - 我尝试定义一个 hash_map 变量在 VS2008 中对我不起作用

我正在使用VisualStudio2008。这是我的代码:#include"stdafx.h"#include#include#includeusingnamespacestd;hash_maphm;intmain(){return0;}这是我的错误:errorC2143:syntaxerror:missing';'before' 最佳答案 在MSVC编译器中,对标准库的扩展放在stdext命名空间中:#includestdext::hash_maphm;intmain(){return0;}免责声明:我没有VS2008,但这应该可

c++ - 与 hash_combine 发生太多冲突

我将boost::unordered_map与自定义结构一起使用,该结构或多或少是一个整数vector,并具有如下所示的自定义哈希函数:std::size_tseed=0;for(inti=0;i当myvec的大小为3并且我用1M元素1:100x1:100x1:100填充散列(所以myvec的每个元素都是一个从1到100的整数)我得到大约330,000次碰撞。发生这么多次碰撞是否正常?我该怎么做才能避免这种情况? 最佳答案 你是对的。Boost的hash_combine函数对这个数据集的表现很差。您可以使用thiscode进行测试对