효율적으로 여러 개의 작은 문자열을 std::string
에 연결해야한다는 요구 사항이 있습니다. std :: string에서 문자열을 연결하는 옵션
abc
,
def
,
ghi
,
lmn
및
pqr
가 있다고 가정 해 봅시다. 이 따라서 연결된 할 필요가 :
pqr
,
lmn
,
ghi
,
def
및
abc
:
/abc/def/ghi/lmn/pqr
문자열이 연결된 문자열의 최종 위치와 반대 순서로 수신 할 수있다.
이 작업을 효율적으로 수행하려면 모든 문자열의 크기를 알고 있으므로 reserve()
API를 std::string
으로 사용합니다.
은 문자열을 저장하고 하나 하나 터지는하여 그들을 연결하는 스택을 사용합니다.
std::string
의insert()
API를 사용하여 나머지 문자열을 처음부터 새 문자열을 수용하도록 이동하십시오.
연결될 문자열의 수는 최대 2,000 개입니다.
중 최선의 선택인가? –
http://www.cplusplus.com/reference/sstream/stringstream/을보십시오. "<<"연산자가 오버로드됩니다. 성능면에서 조기 최적화에주의하십시오. 구현 및 프로파일 링. 의심스러운 경우 다시 구현하십시오. – mutex36
방법 1이 제대로 구현 되었다면 적어도 방법 2보다 느리지는 않습니다 – Slava