mpz_t
キーからuint
値へのマップを作成しようとしています。理由はわかりませんが、mpz_t
どうにかしてキーをマップで検索できません。
mpz_t leftSideValues[1 << 20];
int main()
{
std::map<mpz_t, uint> leftSide;
for (uint i = 0; i < 1 << 20; i++)
{
mpz_init(leftSideValues[i]);
// compute some stuff here...
// now save the computed value to our map
leftSide[leftSideValues[i]] = i;
// do a lookup to see whether our value can be found
std::cout << leftSide.at(leftSideValues[i]) << " -- " << i << std::endl;
}
return 0;
}
予想される出力は、「0 -- 0」、「1 -- 1」などのように見える多くの行ですが、そうはなりません。その代わり:
「std::out_of_range」のインスタンスをスローした後に呼び出される終了 what(): map::at
mpz_t
マップで使用できるようにするために他に必要な手順はありますか?