Перейти к основному содержимому
Перейти к основному содержимому

Функции битовых карт

Битовые карты могут быть построены двумя способами. Первый способ – с помощью агрегатной функции groupBitmap с -State, второй способ – путем создания битовой карты из объекта массива.

bitmapBuild

Создает битовую карту из массива беззнаковых целых чисел.

Синтаксис

Аргументы

  • array – Массив беззнаковых целых чисел.

Пример

bitmapToArray

Преобразует битовую карту в массив целых чисел.

Синтаксис

Аргументы

  • bitmap – Объект битовой карты.

Пример

Результат:

bitmapSubsetInRange

Возвращает подмножество битовой карты с битами в пределах интервального значения.

Синтаксис

Аргументы

Пример

Результат:

bitmapSubsetLimit

Возвращает подмножество битовой карты с наименьшим значением бита range_start и максимумом cardinality_limit элементов.

Синтаксис

Аргументы

Пример

Результат:

subBitmap

Возвращает подмножество битовой карты, начиная с позиции offset. Максимальная кардинальность возвращаемой битовой карты составляет cardinality_limit.

Синтаксис

Аргументы

  • bitmap – Битовая карта. Объект битовой карты.
  • offset – Позиция первого элемента подмножества. UInt32.
  • cardinality_limit – Максимальное количество элементов в подмножестве. UInt32.

Пример

Результат:

bitmapContains

Проверяет, содержит ли битовая карта элемент.

Аргументы

Возвращаемые значения

  • 0 — Если bitmap не содержит needle. UInt8.
  • 1 — Если bitmap содержит needle. UInt8.

Пример

Результат:

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 – Объект битовой карты.

Пример

Результат: