结构

GLibSList

描述 [源代码]

struct GSList {
  gpointer data;
  GSList* next;
}

GSList 结构用于单向 链表中的每个元素。

结构成员
data

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

next

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

函数

g_slist_alloc

为一个 GSList 元素分配空间。它由 g_slist_append()、g_slist_prepend()、g_slist_insert()g_slist_insert_sorted() 函数调用,因此很少单独使用。

g_slist_append

在 链表的末尾添加一个新元素。

g_slist_concat

将第二个 GSList 添加到第一个 GSList 的末尾。注意,第二个 GSList 的元素不会被复制。它们直接 使用。

g_slist_copy

复制一个 GSList

g_slist_copy_deep

GSList 进行完整(深度)复制。

自: 2.34

g_slist_delete_link

从列表中移除节点 link_ 并释放它。将此与 g_slist_remove_link()(在不释放的情况下移除节点)进行比较。

g_slist_find

GSList 中查找包含给定 数据的元素。

g_slist_find_custom

GSList 中查找元素,通过提供函数来查找所需的元素。它会迭代列表,调用给定的函数,当找到所需的元素时,该函数应返回 0。该函数采用两个 #gconstpointer 参数,作为第一个参数的 GSList 元素数据以及给定的用户 数据。

g_slist_foreach

GSList 的每个元素调用一个函数。

g_slist_free

释放所有由 GSList 使用的内存。释放的元素将返还给 slice 分配器。

g_slist_free_1

释放一个 GSList 元素。它通常在 g_slist_remove_link() 之后使用。

g_slist_free_full

便利方法,释放 GSList 使用的所有内存,并对每个元素的数据调用指定的销毁函数。

自 2.28 起

g_slist_index

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

g_slist_insert

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

g_slist_insert_before

data 包含 sibling 之前插入一个节点。

g_slist_insert_sorted

使用给定的比较函数来确定位置,向列表中插入一个新的元素。

g_slist_insert_sorted_with_data

使用给定的比较函数来确定位置,向列表中插入一个新的元素。

自 2.10 起

g_slist_last

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

g_slist_length

获取 GSList 中的元素数量。

g_slist_nth

获取 GSList 中给定位置的元素。

g_slist_nth_data

获取给定位置处元素的数据。

g_slist_pop_allocator
没有可用的描述。

g_slist_position

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

g_slist_prepend

在列表的开头添加一个新元素。

g_slist_push_allocator
没有可用的描述。

g_slist_remove

GSList 中移除一个元素。如果两个元素包含相同数据,则仅移除第一个。如果没有任何元素包含该数据,则 GSList 保持不变。

g_slist_remove_all

移除所有数据等于 data 的列表节点。返回列表的新头部。与 g_slist_remove() 形成对比,后者仅移除与给定 data 匹配的第一个节点。

g_slist_remove_link

GSList 中移除一个元素,而不释放该元素。已移除元素的下一个链接设置为 NULL,以便它成为一个包含一个元素的独立列表。

g_slist_reverse

反转 GSList

g_slist_sort

使用给定的比较函数对 GSList 进行排序。使用的算法是一种稳定的排序。

g_slist_sort_with_data

如同 g_slist_sort(),但是 sort 函数接受一个用户数据参数。