Spec-Zone.ru › GTK 4.0

GtkBitset

GtkBitset — Множества целых чисел

Функции

GtkBitset * gtk_bitset_ref ()
void gtk_bitset_unref ()
GtkBitset * gtk_bitset_new_empty ()
GtkBitset * gtk_bitset_new_range ()
GtkBitset * gtk_bitset_copy ()
gboolean gtk_bitset_contains ()
gboolean gtk_bitset_is_empty ()
gboolean gtk_bitset_equals ()
guint gtk_bitset_get_minimum ()
guint gtk_bitset_get_maximum ()
guint64 gtk_bitset_get_size ()
guint64 gtk_bitset_get_size_in_range ()
guint gtk_bitset_get_nth ()
void gtk_bitset_remove_all ()
gboolean gtk_bitset_add ()
gboolean gtk_bitset_remove ()
void gtk_bitset_add_range ()
void gtk_bitset_remove_range ()
void gtk_bitset_add_range_closed ()
void gtk_bitset_remove_range_closed ()
void gtk_bitset_add_rectangle ()
void gtk_bitset_remove_rectangle ()
void gtk_bitset_union ()
void gtk_bitset_intersect ()
void gtk_bitset_subtract ()
void gtk_bitset_difference ()
void gtk_bitset_shift_left ()
void gtk_bitset_shift_right ()
void gtk_bitset_splice ()
gboolean gtk_bitset_iter_init_first ()
gboolean gtk_bitset_iter_init_last ()
gboolean gtk_bitset_iter_init_at ()
gboolean gtk_bitset_iter_next ()
gboolean gtk_bitset_iter_previous ()
guint gtk_bitset_iter_get_value ()
gboolean gtk_bitset_iter_is_valid ()

Типы и значения

GtkBitset
struct GtkBitsetIter

Иерархия объектов

    GBoxed
    ╰── GtkBitset

Файлы

#include <gtk/gtk.h>

Описание

GtkBitset — это структура данных для представления множества целых беззнаковых чисел. Другое название этой структуры — «битовая карта».

Текущая реализация основана на роaring битовых картах.

Битовая карта позволяет добавлять множество целых чисел и поддерживает операции над множествами, такие как объединение, пересечение и проверки на равенство или наличие значения в множестве. GtkBitset также содержит различные функции для запроса метаданных о битовой карте, такие как минимальное или максимальное значения или её размер.

Самый быстрый способ итерировать значения в битовой карте — это GtkBitsetIter.

Основной случай использования GtkBitset — реализация сложных выборов для GtkSelectionModel.

Функции

gtk_bitset_ref ()

GtkBitset *
gtk_bitset_ref (GtkBitset *self);

Приобретает ссылку на заданный GtkBitset.

Параметры

self

a GtkBitset.

[allow-none]

Возвращает

GtkBitset с дополнительной ссылкой.

[transfer none]

gtk_bitset_unref ()

void
gtk_bitset_unref (GtkBitset *self);

Освобождает ссылку на заданный GtkBitset.

Если ссылка была последней, то ресурсы, связанные с self, освобождаются.

Параметры

self

a GtkBitset.

[allow-none]

gtk_bitset_new_empty ()

GtkBitset *
gtk_bitset_new_empty (void);

Создаёт новый пустой битовый набор.

Возвращает

Новый пустой битовый набор

gtk_bitset_new_range ()

GtkBitset *
gtk_bitset_new_range (guint start,
                      guint n_items);

Создаёт битовый набор с заданным диапазоном.

Параметры

start

начальное значение для добавления

n_items

количество последовательных значений для добавления

Возвращает

Новый битовый набор

gtk_bitset_copy ()

GtkBitset *
gtk_bitset_copy (const GtkBitset *self);

Создаёт копию self .

Параметры

self

a GtkBitset

Возвращает

Новый битовый набор, содержащий те же значения, что и self .

[transfer full]

gtk_bitset_contains ()

gboolean
gtk_bitset_contains (const GtkBitset *self,
                     guint value);

Проверяет, было ли заданное value добавлено в self

Параметры

self

a GtkBitset

value

значение для проверки

Возвращает

TRUE если self содержит value

gtk_bitset_is_empty ()

gboolean
gtk_bitset_is_empty (const GtkBitset *self);

Проверяет, содержит ли битовый набор какие-либо значения.

Параметры

self

a GtkBitset

Возвращает

TRUE если self пуст

gtk_bitset_equals ()

gboolean
gtk_bitset_equals (const GtkBitset *self,
                   const GtkBitset *other);

Возвращает TRUE если self и other содержат одинаковые значения.

Параметры

self

a GtkBitset

other

another GtkBitset

Возвращает

TRUE если self и other содержат одинаковые значения

gtk_bitset_get_minimum ()

guint
gtk_bitset_get_minimum (const GtkBitset *self);

Возвращает наименьшее значение в self . Если self пуст, возвращается G_MAXUINT.

Параметры

self

a GtkBitset

Возвращает

Наименьшее значение в self

gtk_bitset_get_maximum ()

guint
gtk_bitset_get_maximum (const GtkBitset *self);

Возвращает наибольшее значение в self . Если self пуст, возвращается 0.

Параметры

self

a GtkBitset

Возвращает

Наибольшее значение в self

gtk_bitset_get_size ()

guint64
gtk_bitset_get_size (const GtkBitset *self);

Получает количество значений, добавленных в набор. Например, если набор пуст, возвращается 0.

Обратите внимание, что эта функция возвращает guint64, потому что, когда все значения установлены, возвращаемое значение равно G_MAXUINT + 1. Убедитесь, что вы используете 64-битный тип, если не уверены, что это не может произойти (в случае с GListModel это невозможно).

Параметры

self

a GtkBitset

Возвращает

Количество значений в наборе.

gtk_bitset_get_size_in_range ()

guint64
gtk_bitset_get_size_in_range (const GtkBitset *self,
                              guint first,
                              guint last);

Получает количество значений, которые являются частью набора от first до last (включительно).

Обратите внимание, что эта функция возвращает guint64, потому что, когда все значения установлены, возвращаемое значение равно G_MAXUINT + 1. Убедитесь, что вы используете 64-битный тип, если не уверены, что это не может произойти (в случае с GListModel это невозможно).

Параметры

self

a GtkBitset

first

первый элемент для включения

last

последний элемент для включения

Возвращает

Количество значений в наборе от first до last .

gtk_bitset_get_nth ()

guint
gtk_bitset_get_nth (const GtkBitset *self,
                    guint nth);

Возвращает значение nth элемента в self.

Если nth ≥ размер self, возвращается 0.

Параметры

self

a GtkBitset

nth

индекс элемента для получения

Возвращает

значение nth элемента в self

gtk_bitset_remove_all ()

void
gtk_bitset_remove_all (GtkBitset *self);

Удаляет все значения из набора битов, делая его пустым.

Параметры

self

a GtkBitset

gtk_bitset_add ()

gboolean
gtk_bitset_add (GtkBitset *self,
                guint value);

Добавляет value в self, если он в нём отсутствовал ранее.

Параметры

self

a GtkBitset

value

значение для добавления

Возвращает

TRUE если value отсутствовал в self и self был изменён.

gtk_bitset_remove ()

gboolean
gtk_bitset_remove (GtkBitset *self,
                   guint value);

Удаляет value из self, если он в нём присутствовал ранее.

Параметры

self

a GtkBitset

value

значение для удаления

Возвращает

TRUE если value присутствовал в self и self был изменён.

gtk_bitset_add_range ()

void
gtk_bitset_add_range (GtkBitset *self,
                      guint start,
                      guint n_items);

Добавляет все значения от start (включительно) до start + n_items (исключительно) в self.

Параметры

self

a GtkBitset

start

первое значение для добавления

n_items

количество последовательных значений для добавления

gtk_bitset_remove_range ()

void
gtk_bitset_remove_range (GtkBitset *self,
                         guint start,
                         guint n_items);

Удаляет все значения от start (включительно) до start + n_items (исключительно) в self.

Параметры

self

a GtkBitset

start

первое значение для удаления

n_items

количество последовательных значений для удаления

gtk_bitset_add_range_closed ()

void
gtk_bitset_add_range_closed (GtkBitset *self,
                             guint first,
                             guint last);

Добавляет замкнутый интервал [first , last ], то есть first , last и все значения между ними. first должно быть меньше last.

Параметры

self

a GtkBitset

first

первое значение для добавления

last

последнее значение для добавления

gtk_bitset_remove_range_closed ()

void
gtk_bitset_remove_range_closed (GtkBitset *self,
                                guint first,
                                guint last);

Удаляет замкнутый интервал [first , last ], то есть first , last и все значения между ними. first должно быть меньше last.

Параметры

self

a GtkBitset

first

первое значение для удаления

last

последнее значение для удаления

gtk_bitset_add_rectangle ()

void
gtk_bitset_add_rectangle (GtkBitset *self,
                          guint start,
                          guint width,
                          guint height,
                          guint stride);

Рассматривает значения как двумерную булеву сетку с заданным stride и внутри этой сетки добавляет прямоугольник с заданной width и height.

Параметры

self

a GtkBitset

start

первое значение для добавления

width

ширина прямоугольника

height

высота прямоугольника

stride

шаг строки сетки

gtk_bitset-remove-rectangle ()

void
gtk_bitset_remove_rectangle (GtkBitset *self,
                             guint start,
                             guint width,
                             guint height,
                             guint stride);

Рассматривает значения как двумерную булеву сетку с заданным stride и внутри этой сетки удаляет прямоугольник с заданной width и height.

Параметры

self

a GtkBitset

start

первое значение для удаления

width

ширина прямоугольника

height

высота прямоугольника

stride

шаг строки сетки

gtk_bitset_union ()

void
gtk_bitset_union (GtkBitset *self,
                  const GtkBitset *other);

Устанавливает self в объединение self и other, то есть добавляет все значения из other в self, если они там отсутствуют.

Разрешается, чтобы self и other были одним и тем же набором битов. В этом случае ничего не произойдёт.

Параметры

self

a GtkBitset

other

the GtkBitset to union with

gtk_bitset_intersect ()

void
gtk_bitset_intersect (GtkBitset *self,
                      const GtkBitset *other);

Устанавливает self в пересечение множеств self и other, то есть удаляет из self все значения, которые не являются частью other.

Разрешается, чтобы self и other были одним и тем же набором битов. В этом случае ничего не произойдёт.

Параметры

self

a GtkBitset

other

the GtkBitset для пересечения

gtk_bitset_subtract ()

void
gtk_bitset_subtract (GtkBitset *self,
                     const GtkBitset *other);

Устанавливает self в разность множеств other и self, то есть удаляет из self все значения, которые являются частью other.

Разрешается, чтобы self и other были одним и тем же набором битов. В этом случае множество станет пустым.

Параметры

self

a GtkBitset

other

the GtkBitset для вычитания

gtk_bitset_difference ()

void
gtk_bitset_difference (GtkBitset *self,
                       const GtkBitset *other);

Устанавливает self в симметрическую разность множеств self и other, то есть устанавливает self так, чтобы он содержал все значения, которые были либо в self, либо в other, но не в обоих. Эта операция также называется XOR.

Разрешается, чтобы self и other были одним и тем же набором битов. В этом случае множество станет пустым.

Параметры

self

a GtkBitset

other

the GtkBitset для вычисления разности

gtk_bitset_shift_left ()

void
gtk_bitset_shift_left (GtkBitset *self,
                       guint amount);

Сдвигает все значения в self влево на amount позиций. Значения, меньшие чем amount, отбрасываются.

Параметры

self

a $GtkBitset

amount

количество позиций сдвига влево

gtk_bitset_shift_right ()

void
gtk_bitset_shift_right (GtkBitset *self,
                        guint amount);

Сдвигает все значения в self вправо на amount позиций. Значения, которые становятся слишком большими для хранения в guint, отбрасываются.

Параметры

self

a $GtkBitset

amount

количество позиций сдвига вправо

gtk_bitset_splice ()

void
gtk_bitset_splice (GtkBitset *self,
                   guint position,
                   guint removed,
                   guint added);

Это вспомогательная функция для обработки GListModel, дублирующая сигнал “items-changed”.

Сначала она «вырезает» значения от position до removed из множества битов. То есть, она удаляет эти значения и сдвигает все большие значения влево на removed позиций.

Затем она «вставляет» новое пространство в множество, сдвигая все значения, большие чем position, вправо на added позиций. Это освобождает место, которое затем можно заполнить.

Параметры

self

a GtkBitset

position

позиция для вырезания

removed

количество удаляемых значений

added

количество добавляемых значений

gtk_bitset_iter_init_first ()

gboolean
gtk_bitset_iter_init_first (GtkBitsetIter *iter,
                            const GtkBitset *set,
                            guint *value);

Инициализирует итератор для set и указывает его на первое значение в set. Если set пусто, возвращает FALSE, и value устанавливается в G_MAXUINT.

Параметры

iter

указатель на неинициализированный GtkBitsetIter.

[out]

set

a GtkBitset

value

Устанавливается в первое значение в set.

[out][optional]

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

TRUE если set не пусто.

gtk_bitset_iter_init_last ()

gboolean
gtk_bitset_iter_init_last (GtkBitsetIter *iter,
                           const GtkBitset *set,
                           guint *value);

Инициализирует итератор для set и указывает его на последнее значение в set. Если set пусто, возвращает FALSE.

Параметры

iter

указатель на неинициализированный GtkBitsetIter.

[out]

set

a GtkBitset

value

Устанавливается в последнее значение в set.

[out][optional]

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

TRUE если set не пусто.

gtk_bitset_iter_init_at ()

gboolean
gtk_bitset_iter_init_at (GtkBitsetIter *iter,
                         const GtkBitset *set,
                         guint target,
                         guint *value);

Инициализирует iter для указания на target. Если target не найден, находит следующее значение после него. Если в set нет значения, большего или равного target, эта функция возвращает FALSE.

Параметры

iter

указатель на неинициализированный GtkBitsetIter.

[out]

set

a GtkBitset

target

целевое значение, с которого начать итерацию

value

Присваивается найденному значению в set.

[out][optional]

Возвращает

TRUE если значение было найдено.

gtk_bitset_iter_next ()

gboolean
gtk_bitset_iter_next (GtkBitsetIter *iter,
                      guint *value);

Перемещает iter к следующему значению в наборе. Если он уже указывает на последнее значение в наборе, возвращается FALSE, и iter становится недействительным.

Параметры

iter

указатель на действительный GtkBitsetIter

value

Присваивается следующее значение.

[out][optional]

Возвращает

TRUE если следующее значение существовало

gtk_bitset_iter_previous ()

gboolean
gtk_bitset_iter_previous (GtkBitsetIter *iter,
                          guint *value);

Перемещает iter к предыдущему значению в наборе. Если он уже указывает на первое значение в наборе, возвращается FALSE, и iter становится недействительным.

Параметры

iter

указатель на действительный GtkBitsetIter

value

Присваивается предыдущее значение.

[out][optional]

Возвращает

TRUE если предыдущее значение существовало

gtk_bitset_iter_get_value ()

guint
gtk_bitset_iter_get_value (const GtkBitsetIter *iter);

Возвращает текущее значение, на которое указывает iter.

Если iter недействителен и gtk_bitset_iter_is_valid() возвращает FALSE, эта функция возвращает 0.

Параметры

iter

a GtkBitsetIter

Возвращает

Текущее значение, на которое указывает iter

gtk_bitset_iter_is_valid ()

gboolean
gtk_bitset_iter_is_valid (const GtkBitsetIter *iter);

Проверяет, указывает ли iter на действительное значение.

Параметры

iter

a GtkBitsetIter

Возвращает

TRUE если iter указывает на действительное значение

Типы и значения

GtkBitset

typedef struct _GtkBitset GtkBitset;

Структура GtkBitset содержит только данные, предназначенные для внутреннего использования.

struct GtkBitsetIter

struct GtkBitsetIter {
};

Непрозрачная, размещаемая в стеке структура для итерации по элементам GtkBitset. Прежде чем использовать GtkBitsetIter, её необходимо инициализировать с помощью gtk_bitset_iter_init_first(), gtk_bitset_iter_init_last() или gtk_bitset_iter_init_at().

См. также

GtkSelectionModel

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkBitset.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API