结构

GLibArray

描述 [src]

struct GArray {
  gchar* data;
  guint len;
}

包含 GArray 的公共字段。

结构成员
data

元素数据的指针。随着向 GArray 添加元素,该数据可能会被移动。

len

GArray 中元素的个数,不包括可能的终止零元素。

函数

g_array_append_vals

将 len 个元素添加到数组末尾。

g_array_binary_search

通过基于给定的比较函数 compare_func 执行二分查找来检查 target 是否存在于 array 中,比较函数将项目指针作为参数获取。如果找到元素,则返回 TRUE,并将元素索引返回给 out_match_index(如果为非 NULL)。否则,返回 FALSE,out_match_index 未定义。如果 target 在 array 中存在多次,则返回第一个实例的索引。此搜索使用二分查找,因此 array 必须绝对按顺序排列才能返回正确的结果(否则,该函数可能会产生假阴性)。

自 2.62 起

g_array_copy

创建 GArray 的浅表副本。如果数组元素包含指向数据的指针,则复制指针,但不复制实际数据。

自 2.62 起

g_array_free

释放为 GArray 分配的内存。如果 free_segment 为 TRUE,则释放保存该元素的内存块。如果你想要释放 GArray 外壳但保留基础数组以便在别处使用,则传递 FALSE。如果 array 的引用计数大于 1,则保留 GArray 外壳,但将 array 的大小设置为零。

g_array_get_element_size

获取 array 中元素的大小。

自 2.22 起

g_array_insert_vals

在给定的索引处,将 len 个元素插入 GArray 中。

g_array_new

创建引用计数为 1 的新 GArray。

g_array_new_take

创建新 GArray,其中 data 作为数组数据,len 作为长度,引用计数为 1。

自 2.76 起

g_array_new_take_zero_terminated

创建一个新 GArray,其中 data 作为数组数据,在此基础上计算长度,并将引用计数设为 1。

自 2.76 起

g_array_prepend_vals

将 len 个元素添加到数组开头。

g_array_ref

以原子方式将 array 的引用计数加一。此函数是线程安全的,可以从任何线程调用。

自 2.22 起

g_array_remove_index

GArray 中移除指定索引处的元素。后面的元素下移一位。

g_array_remove_index_fast

GArray 中移除指定索引处的元素。数组中的最后一个元素用于填补空间,因此此函数不会保留 GArray 的顺序。但它比 g_array_remove_index() 更快。

g_array_remove_range

GArray 中从指定索引处开始移除指定数量的元素。后面的元素移到一起以填补空隙。

since: 2.4

g_array_set_clear_func

设置一个函数来清除 array 的元素。

since: 2.32

g_array_set_size

设置数组的大小,必要时展开数组。如果数组是用 clear_ 设置为 TRUE 创建的,新元素就会被设置为 0。

g_array_sized_new

创建一个新的 GArray,预先分配 reserved_size 个元素,引用计数为 1。如果你要向数组添加很多元素,这可以避免频繁重新分配。但是请注意,数组的大小仍然是 0。

g_array_sort

使用 compare_funcGArray 进行排序,它应该是一个 qsort() 风格的比较函数(如果第一个参数小于第二个参数,则返回小于零的值;如果相等,则返回零;如果第一个参数大于第二个参数,则返回大于零的值)。

g_array_sort_with_data

与 g_array_sort() 类似,但比较函数会收到额外的用户数据参数。

g_array_steal

释放数组中的数据并将大小重置为零,同时保留底层数组在其他地方使用并将其返回给调用者。

since: 2.64

g_array_unref

array 的引用计数原子地减少 1。如果引用计数降至 0,数组分配的所有内存都会被释放。此函数是线程安全的,可以从任何线程中调用。

自 2.22 起