Функции битовых карт
Битовые карты могут быть построены двумя способами. Первый способ – с помощью агрегатной функции groupBitmap с -State
, второй способ – путем создания битовой карты из объекта массива.
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
Возвращает 1, если первая битовая карта содержит все элементы второй битовой карты, иначе 0. Если вторая битовая карта пуста, возвращает 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
– Массив UInt32 с тем же размером, что иfrom_array
.
Пример
Результат:
bitmapAnd
Вычисляет логическое совмещение двух битовых карт.
Синтаксис
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapOr
Вычисляет логическое дизъюнкцию двух битовых карт.
Синтаксис
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapXor
Вычисляет XOR двух битовых карт.
Синтаксис
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapAndnot
Вычисляет логическое совмещение двух битовых карт и инвертирует результат.
Синтаксис
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapAndCardinality
Возвращает кардинальность логического совмещения двух битовых карт.
Синтаксис
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapOrCardinality
Возвращает кардинальность логического дизъюнкции двух битовых карт.
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapXorCardinality
Возвращает кардинальность XOR двух битовых карт.
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат:
bitmapAndnotCardinality
Возвращает кардинальность операции AND-NOT двух битовых карт.
Аргументы
bitmap
– Объект битовой карты.
Пример
Результат: