【发布时间】:2012-10-16 07:58:51
【问题描述】:
动机:我想使用bsearch(二进制搜索)来快速搜索 121 位非负整数的排序列表(它们都正好有 121 位,尽管它们可能有前导零)。这些整数太大而无法存储为单独的ints,等等,所以我打算将它们设为mpz_t(使用GMP)。
查看手册,GMP 没有 bsearch 等效项(不过,如果我错了,请纠正我),这导致我:
问题:我们可以使用
memcmp或类似的东西来比较两个具有相同位数的非负整数存储为mpz_t吗?如果是这样,正确的语法是什么?
如果可以的话,搜索应该是相当有效的。
我也愿意接受以下方面的替代建议:(a) 用于存储这些 121 位整数的数据结构,允许在 C++ 中快速搜索,(b) 搜索不使用 memcmp 的整数的方法。
【问题讨论】:
-
为什么 GMP 需要
bsearch()等效项?在我看来,标准bsearch()可以与适当的基于 GMP 的比较器功能一起使用,不是吗? -
嗯...好点。确实可以。