Visual C++ 的 stdext::hash_set<T>::upper_bound()
如何实现?工作?
哈希表如何让元素保持排序?!
我曾尝试阅读源代码,但很难破译 STL 代码……甚至在概念上,我也无法理解它:哈希表如何比较元素?
最佳答案
各种unordered_xxx
模板使用哈希函数将对象分类到桶中。进入同一桶的对象被分组,以便比较相等的对象相邻(其中“比较相等”意味着“a < b
为假且b < a
为假,或者对于谓词版本,pr(a,b)
为假且pr(b,a)
为假”)。 lower_bound()
返回一个指向第一个匹配传递值的对象的迭代器; upper_bound()
返回一个迭代器,该迭代器是与传递值匹配的最后一个对象的迭代器。不涉及全局排序。
关于c++ - hash_set::upper_bound() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150894/