Value arrays

Value arrays — Контейнерная структура для массива основных значений

Краткое описание

#include <glib-object.h> GValueArray; GValue* g_value_array_get_nth (GValueArray *value_array, guint index_); GValueArray* g_value_array_new (guint n_prealloced); GValueArray* g_value_array_copy (const GValueArray *value_array); void g_value_array_free (GValueArray *value_array); GValueArray* g_value_array_append (GValueArray *value_array, const GValue *value); GValueArray* g_value_array_prepend (GValueArray *value_array, const GValue *value); GValueArray* g_value_array_insert (GValueArray *value_array, guint index_, const GValue *value); GValueArray* g_value_array_remove (GValueArray *value_array, guint index_); GValueArray* g_value_array_sort (GValueArray *value_array, GCompareFunc compare_func); GValueArray* g_value_array_sort_with_data (GValueArray *value_array, GCompareDataFunc compare_func, gpointer user_data);

Описание

Главная цель GValueArray - использование в качестве свойства объекта которое содержит массив значений. GValueArray является оболочкой массива элементов GValue чтобы использовать как упаковочный тип через G_TYPE_VALUE_ARRAY.

Детали

GValueArray

typedef struct { guint n_values; GValue *values; } GValueArray;

GValueArray содержит массив элементов GValue.

guint  n_values; количество значений содержащихся в массиве
GValue  *values; массив значений

g_value_array_get_nth ()

GValue* g_value_array_get_nth (GValueArray *value_array, guint index_);

Возвращает указатель на значение index_ содержащееся в value_array.

value_array : GValueArray для получения значения
index_ : номер интересуемого значения
Возвращает : указатель значения index_ в value_array

g_value_array_new ()

GValueArray* g_value_array_new (guint n_prealloced);

Распределяет и инициализирует новую GValueArray, опционально резервирует пространство для n_prealloced элементов. Новый массив всегда содержит 0 элементов, независимо от значения n_prealloced.

n_prealloced : количество элементов для предварительного распределения
Возвращает : вновь распределённая GValueArray с 0 значением

g_value_array_copy ()

GValueArray* g_value_array_copy (const GValueArray *value_array);

Конструирует существующую копию GValueArray дублируя всё её содержимое.

value_array : GValueArray для копирования
Возвращает : Вновь распределённая копия GValueArray

g_value_array_free ()

void g_value_array_free (GValueArray *value_array);

Освобождает GValueArray включая её содержимое.

value_array : GValueArray для освобождения

g_value_array_append ()

GValueArray* g_value_array_append (GValueArray *value_array, const GValue *value);

Вставляет копию value как последний элемент value_array.

value_array : GValueArray в которую добавляется элемент
value : GValue для копирования в GValueArray
Возвращает : GValueArray для размещённой value_array

g_value_array_prepend ()

GValueArray* g_value_array_prepend (GValueArray *value_array, const GValue *value);

Вставляет копию value как первый элемент value_array.

value_array : GValueArray в которую добавляется элемент
value : GValue для копирования в GValueArray
Возвращает : GValueArray для размещённой value_array

g_value_array_insert ()

GValueArray* g_value_array_insert (GValueArray *value_array, guint index_, const GValue *value);

Вставляет копию value в определённую позицию value_array.

value_array : GValueArray для добавления в неё элемента
index_ : позиция вставки, должна быть <= value_array->n_values
value : GValue для копирования в GValueArray
Возвращает : GValueArray для размещённой value_array

g_value_array_remove ()

GValueArray* g_value_array_remove (GValueArray *value_array, guint index_);

Удаляет значение в позиции index_ из value_array.

value_array : GValueArray из которой удаляется элемент
index_ : позиция значения для удаления, должна быть < value_array->n_values
Возвращает : GValueArray для value_array

g_value_array_sort ()

GValueArray* g_value_array_sort (GValueArray *value_array, GCompareFunc compare_func);

Сортирует value_array используя compare_func для сравнения элементов согласно семантике GCompareFunc.

Текущая реализация использует Quick-Sort как алгоритм сортировки.

value_array : GValueArray для сортировки
compare_func : функция для сравнения элементов
Возвращает : GValueArray для размещенной value_array

g_value_array_sort_with_data ()

GValueArray* g_value_array_sort_with_data (GValueArray *value_array, GCompareDataFunc compare_func, gpointer user_data);

Сортирует value_array используя compare_func для сравнения элементов согласно семантике GCompareDataFunc.

Текущая реализация использует Quick-Sort алгоритм сортировки.

value_array : GValueArray для сортировки
compare_func : функция для сравнения элементов
user_data : дополнительные данные в качестве аргумента для compare_func
Возвращает : GValueArray для размещенной value_array

Смотрите также

GValue, GParamSpecValueArray, g_param_spec_value_array()