c++11新增的雜湊結構模板定義於標頭檔案:
templatestruct _bitwise_hash : public unary_function<_kty size_t>
;
雜湊結構模板定義乙個函式物件(過載了operator()),實現了雜湊函式:
1.接受乙個引數的型別key
2.返回乙個型別為size_t的值,表示該引數的雜湊值
3.呼叫時不會丟擲異常
4.若兩個引數k1k2相等,則hash()(k1) == hash()(k2)
5.若兩個不同的引數k1k2不相等,則hash()(k1) == hash()(k2)
成立的概率應非常小,接近1.0/std::numeric_limits::max()
無序關聯容器unordered_set,unordered_multiset,unordered_map
和unordered_multimap
預設使用雜湊結構模板來為鍵計算雜湊值。
argument_type
模板第乙個型別引數
result_type
size_t
預設建構函式
構造乙個雜湊函式物件
size_t operator()(t &t)
計算t的雜湊值
在標頭檔案裡,例項化了內建型別的雜湊結構模板:
template
<> struct hash;
template
<> struct hash;
template
<> struct hash
char>;
template
<> struct hash
char>;
template
<> struct hash;
template
<> struct hash;
template
<> struct hash;
template
<> struct hash;
template
<> struct hash
short>;
template
<> struct hash;
template
<> struct hash
int>;
template
<> struct hash;
template
<> struct hash
long>;
template
<> struct hash
long>;
template
<> struct hash
long
long>;
template
<> struct hash;
template
<> struct hash;
template
<> struct hash
double>;
template
< class t > struct hash;
c++11例項化了字串的雜湊結構模板
std:
:hash:
:string>
std:
:hash:
:u16string>
std:
:hash:
:u32string>
std:
:hash:
:wstring>
c++11,std::error_code的雜湊支援
std:
:hash:
:error_code>
c++11例項化的其他雜湊結構模板
std:
:hash:
:bitset>
std:
:hash:
:unique_ptr>
std:
:hash:
:shared_ptr>
std:
:hash:
:type_index>
std:
:hash:
:vector>
std:
:hash:
:thread
::id>
ide:vs2013
#include
#include //
#include
#include
using
std::hash;//
using
std::string;
using
std::cout;
//自定義型別
class s
;//自己封裝乙個雜湊函式物件的型別,內部使用了hash結構模板
class myhash
};//也可以用自定義類例項化乙個hash結構模板
template
<>
class hash < s >
};int main()
輸出:
如有錯誤,請各位看官不吝指正,: )
參考:
資料結構之雜湊(hash)表
最近看php陣列底層結構,用到了雜湊表,所以還是老老實實回去看結構,在這裡去總結一下。這裡先說一下雜湊 hash 表的定義 雜湊表是一種根據關鍵碼去尋找值的資料對映結構,該結構通過把關鍵碼對映的位置去尋找存放值的地方,說起來可能感覺有點複雜,我想我舉個例子你就會明白了,最典型的的例子就是字典,大家估...
Redis資料結構之雜湊hash
雜湊型別 hash 用於儲存鍵值對結構的資料,值只能是字串 hset 新增資料,返回1或0 hset key field value127.0.0.1 6379 hset user 1 name redis integer 1hmset 批量新增資料 hmset key field1 value1 ...
基本資料結構 Hash雜湊
這玩意一直都是個好東西,但是我總覺得玄學的一批。今天藉著專題學習的勁頭,把hash好好梳理一下。雜湊這東西應該都不陌生。將複雜的資訊對映到乙個容易維護的值域之內。那麼hash函式就有點類似於乙個對映關係。通過這個函式來產生乙個關鍵值 key 通過關鍵值與值 value 的對應關係,製作乙個對應表。即...