出于好奇,当您可以按值排序时,为什么还要使用散列?比较非常快,因为它比较从 MSB 到 LSB 的字节/肢体,一旦它们不同就返回结果。
您可以使用平台相关mp_limb_t
类型访问原始数据。两者mpz_t
和mpf_t
都有一个mp_limb_t
向量存储在 指定的地址,有效肢体的数量由该字段_mp_d
的绝对值给出。_mp_size
(定义在gmp.h
)
当然,如果散列函数依赖于 8 位字节向量,则需要转换肢体向量。mp_limb_t
幸运的是,在任何健全的平台上, - -中的位数GMP_LIMB_BITS
总是可以被 8 整除。