|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
布隆过滤器 更多...
#include <bloom_filter.hpp>
Public 成员函数 | |
| ~bloom_filter ()=default | |
| 析构函数 | |
| bloom_filter (const size_t expected_insertions, const double false_positive_prob) | |
| 基于预期插入数和误报率构造 | |
| bloom_filter (const size_t m, const size_t k) | |
| 基于直接参数构造 | |
| NEFORCE_NODISCARD size_t | capacity () const noexcept |
| 获取理论容量 | |
| NEFORCE_NODISCARD bool | empty () const noexcept |
| 检查过滤器是否为空 | |
| NEFORCE_NODISCARD size_t | bit_size () const noexcept |
| 获取位数组大小 | |
| NEFORCE_NODISCARD size_t | hash_count () const noexcept |
| 获取哈希函数数量 | |
| NEFORCE_NODISCARD size_t | approximate_count () const noexcept |
| 估计当前元素数量 | |
| NEFORCE_NODISCARD double | false_positive_rate () const noexcept |
| 估计当前误报率 | |
| NEFORCE_NODISCARD bool | contains (const T &key) const noexcept |
| 检查元素是否可能存在 | |
| void | insert (const T &key) noexcept |
| 插入元素 | |
| void | clear () noexcept |
| 清空过滤器 | |
| bloom_filter & | merge (const bloom_filter &other) |
| 合并另一个过滤器 | |
| bloom_filter | intersect (const bloom_filter &other) const |
| 交集操作 | |
| bloom_filter | unite (const bloom_filter &other) const |
| 并集操作 | |
| byte_vector | to_bytes () const |
| 转换为字节数组 | |
| void | from_bytes (const byte_vector &bytes) |
| 从字节数组恢复 | |
布隆过滤器
| T | 元素类型 |
| Hash | 哈希函数类型,默认为hash<T> |
布隆过滤器使用多个哈希函数将元素映射到一个位数组中。 布隆过滤器有如下特性:
在文件 bloom_filter.hpp 第 40 行定义.
|
inline |
基于预期插入数和误报率构造
| expected_insertions | 预期插入元素数量 |
| false_positive_prob | 期望误报率 |
| value_exception | 当预期插入数为0或误报率不在(0,1)范围内时抛出 |
根据预期插入数量和期望误报率自动计算最优参数。
在文件 bloom_filter.hpp 第 120 行定义.
|
inline |
基于直接参数构造
| m | 位数组大小 |
| k | 哈希函数数量 |
| value_exception | 当m或k为0时抛出 |
直接指定位数组大小和哈希函数数量。
在文件 bloom_filter.hpp 第 139 行定义.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
检查元素是否可能存在
| key | 要检查的元素 |
如果返回false,则元素一定不在集合中。 如果返回true,则元素可能存在(也可能误判)。
在文件 bloom_filter.hpp 第 226 行定义.
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
交集操作
| other | 另一个过滤器 |
| value_exception | 当过滤器参数不匹配时抛出 |
对两个过滤器的位进行AND操作。 要求两个过滤器参数相同。
在文件 bloom_filter.hpp 第 289 行定义.
|
inline |
合并另一个过滤器
| other | 要合并的过滤器 |
| value_exception | 当过滤器参数不匹配时抛出 |
将另一个过滤器的所有位与当前过滤器进行OR操作。 要求两个过滤器参数相同。
在文件 bloom_filter.hpp 第 267 行定义.
被这些函数引用 unite().
|
inline |
|
inline |
并集操作
| other | 另一个过滤器 |
| value_exception | 当过滤器参数不匹配时抛出 |
对两个过滤器的位进行OR操作。
在文件 bloom_filter.hpp 第 309 行定义.
引用了 merge().