跳到主要内容
跳到主要内容

位图函数

位图可以通过两种方式构建。第一种是通过聚合函数 groupBitmap 和 -State 构建的,另一种是从 Array 对象构建位图。

bitmapBuild

从无符号整数数组构建位图。

语法

参数

  • array – 无符号整数数组。

示例

bitmapToArray

将位图转换为整数数组。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapSubsetInRange

返回位图中位于值区间内的子集。

语法

参数

  • bitmap位图对象
  • range_start – 范围的开始(包括)。 UInt32
  • range_end – 范围的结束(不包括)。 UInt32

示例

结果:

bitmapSubsetLimit

返回位图中最小位值为 range_start 并且最多包含 cardinality_limit 个元素的子集。

语法

参数

  • bitmap位图对象
  • range_start – 范围的开始(包括)。 UInt32
  • cardinality_limit – 子集的最大基数。 UInt32

示例

结果:

subBitmap

返回位图的子集,从位置 offset 开始。返回的位图的最大基数为 cardinality_limit

语法

参数

  • bitmap – 位图。 位图对象
  • offset – 子集的第一元素位置。 UInt32
  • cardinality_limit – 子集中元素的最大数量。 UInt32

示例

结果:

bitmapContains

检查位图是否包含某个元素。

参数

返回值

  • 0 - 如果 bitmap 不包含 needleUInt8
  • 1 - 如果 bitmap 包含 needleUInt8

示例

结果:

bitmapHasAny

检查两个位图是否相交。

如果 bitmap2 恰好包含一个元素,请考虑使用 bitmapContains 作为更高效的选择。

语法

参数

  • bitmap1 – 位图对象 1。
  • bitmap2 – 位图对象 2。

返回值

  • 1,如果 bitmap1bitmap2 至少有一个共享元素。
  • 0,否则。

示例

结果:

bitmapHasAll

如果第一个位图包含第二个位图的所有元素,则返回 1,否则返回 0。 如果第二个位图为空,返回 1。

另见 hasAll(array, array)

语法

参数

  • bitmap1 – 位图对象 1。
  • bitmap2 – 位图对象 2。

示例

结果:

bitmapCardinality

返回位图的基数。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapMin

计算位图中设置的最小位,或者如果位图为空则返回 UINT32_MAX(如果类型 >= 8 位则返回 UINT64_MAX)。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapMax

计算位图中设置的最大位,或者如果位图为空则返回 0。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapTransform

在位图中至多替换 N 位。第 i 个替换位的旧值和新值分别由 from_array[i]to_array[i] 给出。

结果依赖于 from_arrayto_array 的数组顺序。

语法

参数

  • bitmap – 位图对象。
  • from_array – UInt32 数组。对于 idx 在范围 [0, from_array.size()) 内,如果位图包含 from_array[idx],则用 to_array[idx] 替换。
  • to_array – 与 from_array 大小相同的 UInt32 数组。

示例

结果:

bitmapAnd

计算两个位图的逻辑与。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapOr

计算两个位图的逻辑或。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapXor

对两个位图进行异或运算。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapAndnot

计算两个位图的逻辑与并对结果取反。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapAndCardinality

返回两个位图的逻辑与的基数。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapOrCardinality

返回两个位图的逻辑或的基数。

参数

  • bitmap – 位图对象。

示例

结果:

bitmapXorCardinality

返回两个位图的异或的基数。

参数

  • bitmap – 位图对象。

示例

结果:

bitmapAndnotCardinality

返回两个位图的 AND-NOT 操作的基数。

参数

  • bitmap – 位图对象。

示例

结果: