我对传递给std::stoi
的整数字符串的限制感到困惑。一个整数是32位,我没有记错?在带符号的32位整数中,范围可以从-2,147,483,648到2,147,483,647。我已经输入“300000000”(三亿)并且超出了范围异常。它似乎强制执行16位限制。 std::stol
似乎在另一方面起作用。我一直试图找到一些说明这些功能限制的文档,但我似乎无法做到。
答案 0 :(得分:2)
不是强加限制的功能,而是整体类型本身;如果输入太大而不适合,函数会抛出异常。要查看任何整数类型的最大值和最小值,请使用std::numeric_limits<the_type>::max()
和std::numeric_limits<the_type>::min()
。