[英]Why does the C++ standard algorithm “count” return a difference_type instead of 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.