将mpz_class强制转换为int

Cast mpz_class to int

本文关键字:转换 int mpz class      更新时间:2023-10-16

使用gmp,我声明:

mpz_class x = 0;

但是现在如果我想用x作为数组的索引,像这样:

textArray[x];

我得到这个错误"error: no match for 'operator[]' in 'testArray[x]'"

那么我如何绕过这个呢?

通常的operator[]size_t。您需要将mpz_class实例转换为兼容的类型:

textArray[x.get_ui()];

注意,如果x大于std::numeric_limits<unsigned long>::max()(检查x.fits_ulong_p())),这将导致麻烦。请注意,mpz_class也很可能不太适合该任务。问问你自己:索引应该任意大吗?

参见:

  • http://gmplib.org/manual/C_002b_002b-Interface-Integers.html C_002b_002b-Interface-Integers