结构
GLibArray
描述 [src]
struct GArray {
gchar* data;
guint len;
}
包含 GArray 的公共字段。
结构成员
data
元素数据的指针。随着向 GArray 添加元素,该数据可能会被移动。
len
GArray 中元素的个数,不包括可能的终止零元素。
函数
g_array_binary_search
通过基于给定的比较函数 compare_func 执行二分查找来检查 target 是否存在于 array 中,比较函数将项目指针作为参数获取。如果找到元素,则返回 TRUE,并将元素索引返回给 out_match_index(如果为非 NULL)。否则,返回 FALSE,out_match_index 未定义。如果 target 在 array 中存在多次,则返回第一个实例的索引。此搜索使用二分查找,因此 array 必须绝对按顺序排列才能返回正确的结果(否则,该函数可能会产生假阴性)。
自 2.62 起
g_array_free
释放为 GArray 分配的内存。如果 free_segment 为 TRUE,则释放保存该元素的内存块。如果你想要释放 GArray 外壳但保留基础数组以便在别处使用,则传递 FALSE。如果 array 的引用计数大于 1,则保留 GArray 外壳,但将 array 的大小设置为零。
g_array_remove_index_fast
从 GArray
中移除指定索引处的元素。数组中的最后一个元素用于填补空间,因此此函数不会保留 GArray
的顺序。但它比 g_array_remove_index() 更快。
g_array_sized_new
创建一个新的 GArray
,预先分配 reserved_size
个元素,引用计数为 1。如果你要向数组添加很多元素,这可以避免频繁重新分配。但是请注意,数组的大小仍然是 0。
g_array_sort
使用 compare_func
对 GArray
进行排序,它应该是一个 qsort() 风格的比较函数(如果第一个参数小于第二个参数,则返回小于零的值;如果相等,则返回零;如果第一个参数大于第二个参数,则返回大于零的值)。