我正在尝试构建从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' 的实例后调用终止 什么():地图::在
我需要采取其他步骤才能mpz_t
在地图中使用吗?