将mpz_class转换为int

时间:2013-03-18 17:37:24

标签: c++ gmp

使用gmp,我声明:

mpz_class x = 0;

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

textArray[x];

我收到此错误"错误:不匹配'运营商[]'在' testArray [x]'"

那么我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:10)

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

textArray[x.get_ui()];

请注意,如果x大于std::numeric_limits<unsigned long>::max(),则会导致问题(请与x.fits_ulong_p())核对。请注意,mpz_class也很可能不太适合{{1}}问一下自己:索引是否应该随意变大?

另见: