데이터 압축의 경우 파일 (여기서 텍스트 파일)을 열고 변수에 모든 내용을 저장해야합니다.문자열 대 큰 텍스트를 저장할 벡터
정말 큰 텍스트 (수백만 자 이상)를 저장하기 위해 문자열 또는 문자 벡터를 사용하는 것이 더 좋습니까?
더 나은 점은 모든 문자를 반복하는 것이 더 빠르다는 것입니다. 또한 count
함수를 사용하여 텍스트에 주어진 문자가 얼마나 많은 지 계산하는 것이 더 빠릅니다.
문자열과 벡터가 많은 문자를 저장할 수 있으므로 크기가 실제로 문제가되지 않습니다. 필요한 경우 텍스트를 몇 개의 하위 텍스트로 분리 할 수 있습니다.
실제 성능은 특정 C++ 구현에 따라 달라집니다. 그 점에서 문자열과 벡터 간에는 중요한 차이가 없습니다. 두 가지 모두 비슷한 기능을 제공하는 임의 액세스 컨테이너입니다. 당신은 이것을 알아 내려고 더 많은 시간을 할애 할 것이고, 아마도 가장 최적이라고 주장 된 컨테이너를 골라서 구할 수 있습니다. –
실제로는 전혀 차이가 없을 것입니다. 두 유형 모두 포인터로 구현되는 (일반적으로) 순방향 반복자를 제공합니다. 의미 론적 차이점은 코드의 독자가'벡터 '에 대해 제어 된 순서에 포함 된'NUL' 문자를 기대할 가능성이 높다는 것입니다. 텍스트 파일을 다루고 있기 때문에 문제는 아닙니다. – IInspectable
병목 현상은 메모리의 컨테이너가 아니라 파일 I/O입니다. * 크기를 조정할 수있는 컨테이너를 사용하거나 건설 중에 용량을 설정하는 것이 좋습니다. 파일을 읽는 동안 메모리를 재 할당하는 것은 매우 느립니다. –