函数
GLibArraybinary_search
since: 2.62
声明 [src]
gboolean
g_array_binary_search (
GArray* array,
gconstpointer target,
GCompareFunc compare_func,
guint* out_match_index
)
描述 [src]
通过基于给定比较函数 compare_func 的二分查找来检查 target 是否存在于 array 中,其中比较函数以项目指针作为参数。如果找到元素,则返回 TRUE 并在 out_match_index 中返回元素索引(如果非 NULL)。否则,返回 FALSE 并且 out_match_index 未定义。如果 target 在 array 中多次出现,返回第一个实例的索引。此搜索使用二分搜索,因此 array 必须绝对排序才能返回正确的结果(如果不排序,则函数可能会产生假阴性)。
以下示例定义了一个比较函数并在 GArray 中搜索一个元素
static gint
cmpint (gconstpointer a, gconstpointer b)
{
const gint *_a = a;
const gint *_b = b;
return *_a - *_b;
}
...
gint i = 424242;
guint matched_index;
gboolean result = g_array_binary_search (garray, &i, cmpint, &matched_index);
...
Available since: 2.62
此函数对语言绑定不可直接访问。
参数
array-
类型: 一个
gpointer数组这是一个
GArray。数据是由函数的调用者拥有的。 target-
类型:
gconstpointer指向要查找的项目指针。
参数可以是 NULL。数据是由函数的调用者拥有的。 compare_func-
类型:
GCompareFunc用于定位
target的GCompareFunc。 out_match_index-
类型:
guint*返回元素的索引,如果找到。
此参数将由函数设置。 参数可以是 NULL。