文字列から64ビット符号なし整数unsigned long long
を読み込む問題を扱っています。 Read 64 bit integer string from fileとstrtoull
は仕事がうまく、より効率的std::stringstream
を使用するよりも作るだろうとthougth:私のコードは、私はこの質問と、そのトピックの答えを読んでGCC 4.3とVisual Studio 201064bit整数から文字列への変換
の両方を動作するはずです。残念ながらstrtoull
はVisual Studioのstdlib.h
では使用できません。
は、だから私は短いテンプレート機能書きました:私は、このソリューションの効率心配
template <typename T>
T ToNumber(const std::string& Str)
{
T Number;
std::stringstream S(Str);
S >> Number;
return Number;
}
unsigned long long N = ToNumber<unsigned long long>("123456789");
を、このescenarioでより良いオプションはありますか?
あなたのアプリのホットスポットですか? –
@Violet:実際はそうではありませんが、GUIをリフレッシュするために大容量のファイルが定期的にロードされるため、できるだけスムーズに実行してください。 –
あなた自身の変換を書くことができます。 'stringstream'を使うよりも速いでしょう。ここのベンチマークを参照してください:http://tinodidriksen.com/2010/02/16/cpp-convert-string-to-int-speed/ – Pablo