簡體   English   中英

為什么C ++哈希函數的返回類型為std :: size_t,而不是與平台無關的類型?

[英]Why C++ hash functions' return type is std::size_t, instead of a platform-independent type?

如圖所示這里std::hash標准庫提供的模板將返回一個類型的值std::size_t 但是, std::size_t的確切類型與平台有關且與實現有關,因此無法估計碰撞概率。
我看不到返回std::size_t任何優勢,所以我的問題是,為什么哈希函數不返回固定類型的值?

std::hash的預期目的是實現哈希表,尤其是標准庫的無序關聯容器。 哈希表是一個數組,而std::size_t是一個適當的選擇,因為它是保證可以表示任何數組的所有索引的類型。 盡管標准並未對此進行實際規定,但實際上這些標准容器可能std::size_t用作大小類型。

如果需要散列函數進行系統間通信,則std::hash不是一個好的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM