函数

GLibPtrArraysort

声明 [src]

void
g_ptr_array_sort (
  GPtrArray* array,
  GCompareFunc compare_func
)

描述 [src]

对数组进行排序,使用 compare_func,它应该是一个 qsort()样式的比较函数(如果第一个参数小于第二个参数,则返回小于零,如果相等,则返回零,如果第一个参数大于第二个参数,则返回大于零)。

注意,g_ptr_array_sort()的比较函数不将数组中的指针作为参数,而是将数组中的指针的指针作为参数。

如果您想使用正常的GMp CompareFuncs,请使用g_ptr_array_sort_values(),否则以下是一个使用示例

typedef struct
{
  gchar *name;
  gint size;
} FileListEntry;

static gint
sort_filelist (gconstpointer a, gconstpointer b)
{
  const FileListEntry *entry1 = *((FileListEntry **) a);
  const FileListEntry *entry2 = *((FileListEntry **) b);

  return g_ascii_strcasecmp (entry1->name, entry2->name);
}


g_autoptr (GPtrArray) file_list = NULL;

// initialize file_list array and load with many FileListEntry entries
...
// now sort it with
g_ptr_array_sort (file_list, sort_filelist);

从版本2.32开始,保证是一个稳定的排序

该函数不直接对语言绑定可用

参数

array

类型:一个 gpointer 的数组

一个 GPtrArray

数据由函数的调用者拥有。
compare_func

类型: GCompareFunc

比较函数。