结构
GLibHashTable
描述 [src]
struct GHashTable {
/* No available fields */
}
GHashTable
结构是一个不透明数据结构,用于表示 [散列表][glib-散列表]。仅可通过以下函数访问。
函数
g_hash_table_add
这是一个方便函数,用于将 `GHashTable` 用作集合。它等效于使用 `key` 作为键和值的 `g_hash_table_replace()` 调用。
自:2.32
g_hash_table_destroy
销毁 GHashTable
中的所有键和值,并将其引用计数减 1。如果动态分配了键和/或值,则应该先释放它们或使用 `g_hash_table_new_full()` 创建带有销毁通知程序的 GHashTable。在后者的案例中,销毁期间会对所有键和值调用你提供的销毁函数。
g_hash_table_find
按顺序调用 GHashTable
中键值对的给定函数,直至 `predicate` 返回 TRUE
。该函数传递给每个对的键和值以及给定的 `user_data` 参数。迭代时不得修改哈希表 (你不能添加/移除项)。
自:2.4
g_hash_table_foreach
按顺序调用 GHashTable
中每个键值对的给定函数。该函数传递给每个对的键和值以及给定的 `user_data` 参数。迭代时不得修改哈希表 (你不能添加/移除项)。要移除所有与谓词匹配的项,请使用 `g_hash_table_foreach_remove`。
g_hash_table_foreach_remove
针对GHashTable
中的每对键/值调用给定函数。如果该函数返回TRUE
,那么该键/值对将从GHashTable
中移除。如果你在创建GHashTable
时提供了键或值销毁函数,它们用于释放为已移除的键和值分配的内存。
g_hash_table_foreach_steal
针对GHashTable
中的每对键/值调用给定函数。如果该函数返回TRUE
,那么该键/值对将从GHashTable
中移除,但不会调用键或值销毁函数。
g_hash_table_get_keys_as_ptr_array
获取hash_table
中的每一个键,作为GPtrArray
。在对哈希所做的修改释放这些键之前,返回的数据仍然有效。
自版本: 2.76 起
g_hash_table_get_values_as_ptr_array
获取hash_table
中的每一个值,作为GPtrArray
。在对哈希所做的修改释放这些值之前,返回的数据仍然有效。
自版本: 2.76 起
g_hash_table_lookup
在GHashTable
中查找一个键。请注意,此函数无法区分不存在的键和存在且值为NULL
的键。如果你需要此区分,请使用g_hash_table_lookup_extended()。
g_hash_table_lookup_extended
在GHashTable
中查找一个键,返回原始键和关联的值以及一个布尔值,如果找到该键,该值为TRUE
。如果你需要释放为原始键分配的内存,这一点非常有用,例如在调用g_hash_table_remove()之前。
g_hash_table_new_full
如同g_hash_table_new()
,创建具有引用计数 1 的一个新GHashTable
,并允许指定函数来释放从GHashTable
中移除条目时分配给键和值的内存。
g_hash_table_replace
如同 g_hash_table_insert(),在GHashTable
中插入一个新键和值。不同之处在于,如果该键已存在于GHashTable
中,它将被新键替换。如果你在创建GHashTable
时提供了value_destroy_func
,旧值将使用该函数释放。如果你在创建GHashTable
时提供了key_destroy_func
,旧键将使用该函数释放。
g_hash_table_steal_all_keys
从 `GHashTable` 中移除所有键及其关联的值,而不调用键的销毁函数,以 `GPtrArray` 的形式返回键,并将其 free func 设置为 `hash_table` 的键销毁 函数。
自版本: 2.76 起
g_hash_table_steal_all_values
从 `GHashTable` 中移除所有键及其关联的值,而不调用值的销毁函数,以 `GPtrArray` 的形式返回值,并将其 free func 设置为 `hash_table` 的值销毁 函数。
自版本: 2.76 起
g_hash_table_steal_extended
在 `GHashTable` 中查找一个键,盗取原始键和关联的值,如果找到该键,则返回 `TRUE`。如果未找到该键,则返回 `FALSE`。
自版本 2.58 起
g_hash_table_unref
原子性地将 `hash_table` 的引用计数减少 1。如果引用计数降至 0,则所有键和值将被销毁,并且哈希表分配的所有内存都将被释放。此函数是 MT- 安全函数,可以从任何 线程调用。
自版本: 2.10 起