ビットマップ関数
ビットマップは二通りの方法で構築できます。最初の方法は、集約関数 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
ビットマップが要素を含むかどうかを確認します。
引数
bitmap
– ビットマップオブジェクト。needle
– 検索するビット値。 UInt32。
返される値
例
結果:
bitmapHasAny
二つのビットマップが交差するかどうかを確認します。
bitmap2
に正確に一つの要素が含まれる場合、bitmapContains を使用することを検討してください。こちらの方が効率的に動作します。
構文
引数
bitmap1
– ビットマップオブジェクト1。bitmap2
– ビットマップオブジェクト2。
返される値
1
、もしbitmap1
とbitmap2
に少なくとも一つの共有要素がある場合。0
、それ以外の場合。
例
結果:
bitmapHasAll
最初のビットマップが2番目のビットマップのすべての要素を含む場合は1を返し、それ以外は0を返します。 2番目のビットマップが空である場合は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_array
および to_array
の配列順序によって結果が変わることがあります。
構文
引数
bitmap
– ビットマップオブジェクト。from_array
– UInt32 配列。インデックスが範囲 [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
– ビットマップオブジェクト。
例
結果: