Функции битовых карт
Битовые карты могут быть построены двумя способами. Первый способ – с помощью агрегатной функции 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– Объект битовой карты.
Пример
Результат: