2

gmp を使用して、次のように宣言します。

mpz_class x = 0;

しかし、x を配列のインデックスとして使用したい場合は、次のようになります。

textArray[x];

「エラー: 'testArray[x]' の 'operator[]' に一致しません」というエラーが表示されます

では、どうすればこれを回避できますか?

4

1 に答える 1

11

通常operator[]size_t. mpz_classインスタンスを互換性のあるタイプに変換する必要があります。

textArray[x.get_ui()];

xがより大きい場合、これは問題を引き起こすことに注意してくださいstd::numeric_limits<unsigned long>::max()( で確認してください。も、そのタスクにはあまり適していない可能性が高いことにx.fits_ulong_p())注意してください。自問してください: インデックスは任意に大きくする必要がありますか?mpz_class

以下も参照してください。

于 2013-03-18T17:41:53.677 に答える