gpt4 book ai didi

c++ - 统一的 int32 分布

转载 作者:行者123 更新时间:2023-11-30 01:35:01 27 4
gpt4 key购买 nike

有没有办法得到制服int32_t没有警告的分发?我用这个uniform_int_distribution<int32_t>在我的代码中,但我收到警告:

54988961.cpp: In function ‘int main()’:
54988961.cpp:6:64: warning: overflow in conversion from ‘double’ to ‘int’ changes value from ‘1.0e+10’ to ‘2147483647’ [-Woverflow]
std::uniform_int_distribution<std::int32_t> unif(1,std::pow(10,10));
~~~~~~~~^~~~~~~

这正是我的代码:

#include <cmath>
#include <cstdint>
#include <random>

int main() {
std::uniform_int_distribution<std::int32_t> unif(1,std::pow(10,10));
}

最佳答案

pow(10, 10)

这是 10000000000int32 只能容纳 2147483647 (2^31 - 1)。如果您希望能够存储您的pow(10, 10),您应该使用int64_t

因为您的最小值是 1,您也可以直接使用它的无符号拷贝。

关于c++ - 统一的 int32 分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54988961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com