其他分享
首页 > 其他分享> > c – std :: unordered_multimap的存储桶是否只包含具有等效键的元素

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 values k1 and k2 of type Key are considered equivalent if the container’s key_equal function object returns true when passed those values. If k1 and k2 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