结构体

GLibList

说明 [src]

struct GList {
  gpointer data;
  GList* next;
  GList* prev;
}

GList 结构体用于双向 链表中的每个元素。

结构体成员
data

保存元素的数据,可以是任何类型数据的指针,也可以使用 [类型转换宏][glib-Type-Conversion-Macros] 保存整型值。

next

包含到链表中下一个元素的链接。

prev

包含到链表中前一个元素的链接。

函数

g_list_alloc

分配一个 GList 元素的空间。它被 g_list_append()、g_list_prepend()、g_list_insert()g_list_insert_sorted() 调用,因此很少单独使用。

g_list_append

在链表的末端添加新元素。

g_list_concat

将第二个 GList 添加到第一个 GList 的末端。请注意,不会复制第二个 GList 中的元素。它们 将直接使用。

g_list_copy

复制一个 GList

g_list_copy_deep

GList 进行完全(深度)复制。

自版本:2.34

g_list_delete_link

删除列表中的 link_ 节点并释放它。将其与 g_list_remove_link() 进行对比,后者删除节点而不会释放 它。

g_list_find

GList 中查找包含给定 data 的元素。

g_list_find_custom

根据提供给查找所需元素的函数,找到 GList 中的一个元素。它会遍历列表,如果找到所需元素,则调用给定的函数,该函数应返回 0。该函数使用两个 #gconstpointer 参数,其中的第一个参数为 GList 元素的数据,第二个参数为给定的用户数据。

g_list_first

获取列表中的第一个元素。

g_list_foreach

为列表中的每个元素调用一个函数。

g_list_free

释放由 GList 使用的所有内存。释放的元素会返回给切片分配器。

g_list_free_1

释放一个 GList 元素,但不会更新列表中前后元素的链接,因此你不应该对当前已成为列表一部分的元素调用该函数。

g_list_free_full

便捷的方法,它会释放 GList 使用的所有内存,并在每个元素的数据上调用 free_func

since: 2.28

g_list_index

从特定位置开始,获取包含给定数据的元素的位置(从 0 开始)。

g_list_insert

在指定的位置插入新元素到列表中。

g_list_insert_before

在指定的位置之前插入新元素到列表中。

g_list_insert_before_link

在指定位置之前,将 link_ 插入列表中。

since: 2.62

g_list_insert_sorted

根据给定的比较函数来确定其位置,将一个新元素插入列表中。

g_list_insert_sorted_with_data

根据给定的比较函数来确定其位置,将一个新元素插入列表中。

since: 2.10

g_list_last

获取 GList 中的最后一个元素。

g_list_length

获取 GList 中的元素数量。

g_list_nth

获取 GList 中特定位置的元素。

g_list_nth_data

获取特定位置元素的数据。

g_list_nth_prev

获取 list 之前 n 个位置的元素。

g_list_pop_allocator
无可用说明。

g_list_position

获取 GList 中给定元素的位置(从 0 开始)。

g_list_prepend

预先将新元素添加到列表开始处。

g_list_push_allocator
无可用说明。

g_list_remove

GList 删除一个元素。如果两个元素包含相同数据,则仅删除第一个元素。如果没有元素包含该数据,则 GList 不变。

g_list_remove_all

移除所有数据等于 data 的列表节点。返回列表的新开头。与此不同的是,g_list_remove() 仅移除匹配给定数据的第一個节点。

g_list_remove_link

GList 中移除一个元素,但不会释放该元素。移除的元素的前一个和下一个链接被设置为 NULL,所以它会成为一个包含一个元素的独立的列表。

g_list_reverse

反转一个 GList。它会简单地切换每个元素的 next 和 prev 指针。

g_list_sort

根据提供的比较函数来对 GList 进行排序。使用的是一种稳定的排序算法。

g_list_sort_with_data

与 g_list_sort() 相同,但比较函数接受一个用户数据参数。