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 的值传递以在新表中创建默认数量的桶。参数 keyComparevalueComparePLHashComparator 类型的函数,哈希表库函数使用它们来比较条目的键和值。

参数 allocOps 指向一个 PLHashAllocOps 结构,该结构必须在整个新哈希表的生命周期内存在。哈希表库函数不会复制此结构。当调用 allocOps 中的分配函数时,分配私有数据 allocPriv 将作为第一个参数(池)传递。您可以为 allocOps 指定 NULL 值以使用默认的分配函数。如果 allocOpsNULL,则 allocPriv 将被忽略。请注意,默认的 freeEntry 函数不会释放条目的值。