이것은 간단한 질문 일 수 있습니다. :최소 데이터 구조를 만들기 위해 파일을 두 번 반복하는 것이 가치가 있습니까?
각 행에 하나의 값이 있도록 파일 형식이 있다고합니다. 이 파일을 읽고 각 값을 배열 또는 벡터에 저장한다고 가정 해 보겠습니다.
벡터 방식은 간단합니다. 파일에서 한 줄을 읽고 벡터에 삽입합니다.
배열을 사용하여 볼 수있는 유일한 방법은 한 번 파일의 모든 줄을 반복하여 계산 한 다음 해당 크기의 배열을 만든 다음 각 줄을 두 번 반복하여 값을 저장하는 것입니다.
더 나은 접근 방법은 무엇입니까? 벡터의 부피가 너무 커야 피할 수없는 장애물이 있습니까? 이것은 관련성이 없으며 파일을 두 번 반복하여 반복적으로 방해가됩니까?
그런데 파일 크기를 확인하고 각 줄 값의 평균 바이트 수로 나누는 방법이 있습니다. – Potatoswatter
C++의 표준 컨테이너 ('vector','list' 등)는 필요에 따라 포함 된 요소의 수로 크기를 변경할 수 있습니다. 사전에 크기를 알고 있으면 (예 : 사전 계산) 크기가 중요하지 않은 경우 도움이됩니다. 일반적으로 파일을 두 번 실행하면 작은 파일에는 큰 차이가 없지만 대용량 파일에는 훨씬 더 나을 것입니다. 메모리 액세스는 I/O 장치 액세스보다 훨씬 빠릅니다. – Peter
벡터에 단점도 없습니다. 정확하게 "부피가 큰"것은 아닙니다. 배열과 비교할 때 오버 헤드가 발생합니다 (8 바이트?). – Galik