1

に渡される整数文字列の制限について混乱していstd::stoiます。整数は32ビットです私は間違っていませんか?符号付き32ビット整数では、-2,147,483,648から2,147,483,647の範囲になります。「300000000」(3億)を入力したところ、範囲外の例外がスローされました。16ビットの制限を強制しているようです。std::stol一方、動作するようです。私はこれらの機能の限界を述べているいくつかのドキュメントを見つけようとしてきましたが、私は見つけることができないようです。

4

1 に答える 1

3

制限を課すのは関数ではなく、整数型そのものです。入力が大きすぎて収まらない場合、関数は例外をスローします。整数型の最大値と最小値を確認するには、とを使用std::numeric_limits<the_type>::max()std::numeric_limits<the_type>::min()ます。

于 2013-01-24T17:45:09.277 に答える