> 백엔드 개발 > C++ > 이 정수-문자열 변환 코드의 성능을 능가할 수 있습니까?

이 정수-문자열 변환 코드의 성능을 능가할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-07 02:36:15
원래의
206명이 탐색했습니다.

Can You Outperform This Integer-to-String Conversion Code?

누구든지 내 정수를 std::string 변환 코드로 변환하는 성능을 능가할 수 있나요?

문제:

효율적인 변환 std::string에 정수를 추가하는 것은 다양한 메소드 생성을 촉발한 과제입니다. 이 기사에서는 다양한 접근 방식을 살펴보고 성능을 비교할 수 있는 제출을 요청합니다.

방법:

일반적인 방법은 다음과 같습니다.

  • "C 방식": stringstream.
  • sprintf: 종종 성능을 위해 권장됩니다.
  • Boost의 lexical_cast: stringstream에 의존하지 않는 자체 구현이 있습니다.
  • Ben의 알고리즘: 다음에 최적화됨 데스크톱 및 임베디드 시스템 모두.
  • ltoa(비표준): 널리 사용 가능하지만 사용이 제한될 수 있습니다.

규칙:

제출물은 특정 사항을 준수해야 합니다. 지침:

  • 부호 있는 32비트 정수와 부호 없는 32비트 정수를 모두 십진수로 변환합니다.
  • 출력을 std::string으로 생성합니다.
  • 스레딩 및 신호와의 호환성을 보장합니다. .
  • ASCII 문자 집합을 가정합니다.
  • 핸들 2의 보수 시스템에서는 INT_MIN이 올바르게 작동합니다.
  • 출력은 문자열 스트림을 사용하는 표준 C 버전과 동일해야 합니다.
  • VC 2010 및 g에서 컴파일하고 실행합니다.

결과:

우승작 상당한 성능 향상을 보여주었습니다.

  • Eugene Smith의 코드: g의 sprintf보다 8배 빠릅니다(http://ideone.com/0uhhX)
  • Timo의 코드: sprintf보다 15배 빠릅니다. Visual C에서 (http://ideone.com/VpKO3)

위 내용은 이 정수-문자열 변환 코드의 성능을 능가할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿