函数
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
比较函数。