ビットマップ関数
ビットマップは2つの方法で構築できます。最初の方法は、-State
を使った集約関数groupBitmap
によって構築する方法、もう1つの方法は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
2つのビットマップが交差しているかどうかを確認します。
もしbitmap2
がちょうど1つの要素を含む場合は、より効率的に動作するためbitmapContains
を使用することを検討してください。
構文
引数
bitmap1
– ビットマップオブジェクト1。bitmap2
– ビットマップオブジェクト2。
返される値
1
、bitmap1
とbitmap2
が少なくとも1つの共有要素を持つ場合。0
、それ以外の場合。
例
結果:
bitmapHasAll
最初のビットマップが2番目のビットマップのすべての要素を含む場合は1を返し、そうでなければ0を返します。 もし2番目のビットマップが空であれば、1を返します。
また、hasAll(array, array)
も参照してください。
構文
引数
bitmap1
– ビットマップオブジェクト1。bitmap2
– ビットマップオブジェクト2。
例
結果:
bitmapCardinality
ビットマップの基本数を返します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapMin
ビットマップ内で設定されている最小ビットを計算します。ビットマップが空の場合はUINT32_MAXを返します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapMax
ビットマップ内で設定されている最大ビットを計算します。ビットマップが空の場合は0を返します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapTransform
ビットマップ内の最大Nビットを置き換えます。i番目の置き換えられたビットの古い値と新しい値は、それぞれfrom_array[i]
とto_array[i]
で指定されます。
結果はfrom_array
とto_array
の配列の順序によって異なります。
構文
引数
bitmap
– ビットマップオブジェクト。from_array
– UInt32配列。idxが範囲[0, from_array.size())のとき、ビットマップがfrom_array[idx]
を含む場合、それをto_array[idx]
で置き換えます。to_array
–from_array
と同じサイズのUInt32配列。
例
結果:
bitmapAnd
2つのビットマップの論理積を計算します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapOr
2つのビットマップの論理和を計算します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapXor
2つのビットマップのXORを実行します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapAndnot
2つのビットマップの論理積を計算し、結果を否定します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapAndCardinality
2つのビットマップの論理積の基本数を返します。
構文
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapOrCardinality
2つのビットマップの論理和の基本数を返します。
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapXorCardinality
2つのビットマップのXORの基本数を返します。
引数
bitmap
– ビットマップオブジェクト。
例
結果:
bitmapAndnotCardinality
2つのビットマップのAND-NOT操作の基本数を返します。
引数
bitmap
– ビットマップオブジェクト。
例
結果: