c++ - hash_set::upper_bound() 是如何工作的?

标签 c++ visual-c++ hashset

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/

相关文章:

c++ - C/C++ h264或ON VP6开源视频编码器

java - 为什么哈希集表现出奇怪的行为?

java - 使用 HashSet 测试遏制

c# - 无法在 DLL 中找到入口点

.net - HashSet 是否保留插入顺序?

c++ - 如何使用 SSE 将 16 位整数除以 255?

c++ - 这是什么样的代码? C 或 C++

c++ - 用cuda计算一张图片,直接用OpenGL显示

c++ - 是否有一个特殊的地方来存储标准 C++ 中的配置

c++ - 缩小转换为 MSVC 中的 bool 警告