c – std :: unordered_multimap的存储桶是否只包含具有等效键的元素
作者:互联网
在www.CPlusPlus.com上,它说明了unordered_multimap的以下内容,
Elements with equivalent keys are grouped together in the same bucket and in such a way that an iterator (see equal_range) can iterate through all of them.
我知道我们无法从该语句中推断出这一点,但我想知道给定的存储桶是否只包含具有等效键的元素?
解决方法:
以下是唯一相关的要求:
[C++11: 23.2.5/5]:
Two valuesk1
andk2
of typeKey
are considered equivalent if the container’skey_equal
function object returns true when passed those values. Ifk1
andk2
are equivalent, the hash function shall return the same value for both. [..]
[C++11: 23.2.5/8]:
The elements of an unordered associative container are organized into buckets. Keys with the same hash code appear in the same bucket. [..]
没有什么禁止使用密钥散列a的所有元素和具有密钥散列b的所有元素存储在同一个桶中.您可以使用标准库实现来判断是否使用了此事实.
没有标准的措辞来明确这一点;它是由遗漏定义的.
标签:unordered-map,c,std 来源: https://codeday.me/bug/20190728/1562503.html