使用gmp,我声明:
mpz_class x = 0;
但现在如果我想使用x作为数组的索引,就像这样:
textArray[x];
我收到此错误"错误:不匹配'运营商[]'在' testArray [x]'"
那么我该如何解决这个问题呢?
答案 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}}问一下自己:索引是否应该随意变大?
另见: