Множества

Здесь описаны операторы и функции для работы с массивом логических значений (тип set).

Операторы

Оператор

Результат

Описание

* set

int

Возвращает размер массива.

^ set

set

Возвращает новое множество, которое обратно указанному. !s[i] для каждого элемента.

set = set

set

Оператор присваивания.

set &= set

set

Создает клон множества. Новая переменная будет работать с тем же набором данных.

set += set

set

Добавить значение одного множества к другому.

set & set

set

Возвращает множество, которое является пересечением двух множеств. left[i] && right[i] для каждого элемента.

set | set

set

Возвращает множество, которое является объединением двух множеств. left[i] || right[i] для каждого элемента.

set [ int ]

bool

Установить/получить элемент множества.

Функции

arr(set s) arr.int

Функция arr конвертирует множество set в массив целых чисел, который содержит индексы элементов множества.

set(str s) set

Функция set конвертирует строку в множество set и возвращает его. Строка должна содержать только символы 1 и 0.

set(arr.int a) set

Функция set конвертирует массив целых чисел в множество set и возвращает его. Результирующее множество будет иметь элементы с соответствующими индексами.

run arr.int {
set s &= {780, 99, 128, 105, 136}
arr.int as = arr(s)
as += 330
s &= set(as)
return arr(s) // [99 105 128 136 330 780]
}

str(set s) str

Функция str конвертирует множество в строку и возвращает её. Результирующая строка содержит только символы 1 и 0.

Set(set s, int index) set

Функция Set добавляет элемент к множеству. Эквивалентно s[index] = true. Функция возвращает s.

Toggle(set s, int index) bool

Функция Toggle добавляет элемент множеству, если его не существует, в противном случае, элемент удаляется. Эквивалентно s[index] = !s[index]. Функция возвращает предыдущее состояние - true, если элемент существовал и false в противном случае.

UnSet(set s, int index) set

Функция UnSet удаляет элемент из множества. Эквивалентно s[index] = false. Функция возвращает s.