문자열에서 64 비트 부호없는 정수 unsigned long long
을 읽는 문제를 다루고 있습니다. Read 64 bit integer string from file 및 strtoull
이 일을 잘하고보다 효율적으로 std::stringstream
를 사용하는 것보다 할 것이라고 thougth : 내 코드는 모두 GCC 4.3 및 Visual Studio 2010문자열에서 64 비트 정수로 변환
내가이 주제에 대한이 질문과 답변을 읽어 작동합니다. 불행히도 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에서 더 나은 옵션이있다 :
그래서 나는 짧은 템플릿 기능을 썼다?
앱의 가장 인기있는 곳입니까? –
@ 바이올렛 : 실제로는 아니지만 GUI를 새로 고치기 위해 주기적으로 큰 파일을로드하므로 최대한 원활하게 실행하고 싶습니다. –
자신 만의 변환을 작성할 수 있습니다. 'stringstream'을 사용하는 것보다 빠를 가능성이 높습니다. 여기 벤치 마크를 참조하십시오 : http://tinodidriksen.com/2010/02/16/cpp-convert-string-to-int-speed/ – Pablo