PL_NewHashTable¶
创建一个新的哈希表。
语法¶
#include <plhash.h>
PLHashTable *PL_NewHashTable(
PRUint32 numBuckets,
PLHashFunction keyHash,
PLHashComparator keyCompare,
PLHashComparator valueCompare,
const PLHashAllocOps *allocOps,
void *allocPriv
);
参数¶
该函数具有以下参数
numBuckets
哈希表中的桶数。
keyHash
哈希函数。
keyCompare
用于比较条目键的函数。
valueCompare
用于比较条目键的函数。
allocOps
指向一个
PLHashAllocOps
结构的指针,该结构必须在整个新哈希表的生命周期内存在。allocPriv
作为第一个参数(池)传递。
返回值¶
新的哈希表。
描述¶
PL_NewHashTable 创建一个新的哈希表。该表至少有 16 个桶。您可以将 0 作为 numBuckets
的值传递以在新表中创建默认数量的桶。参数 keyCompare
和 valueCompare
是 PLHashComparator 类型的函数,哈希表库函数使用它们来比较条目的键和值。
参数 allocOps
指向一个 PLHashAllocOps
结构,该结构必须在整个新哈希表的生命周期内存在。哈希表库函数不会复制此结构。当调用 allocOps
中的分配函数时,分配私有数据 allocPriv 将作为第一个参数(池)传递。您可以为 allocOps
指定 NULL
值以使用默认的分配函数。如果 allocOps
为 NULL
,则 allocPriv
将被忽略。请注意,默认的 freeEntry
函数不会释放条目的值。