파일을 std::벡터
파일을 std로 읽는 최적의 방법을 찾는 경우: :벡터
최적화된 솔루션을 위한 정식 접근 방식에는 반복자를 사용하는 것이 포함됩니다.
#include <iterator> std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents((std::istreambuf_iterator<char>(testFile)), std::istreambuf_iterator<char>());
이 접근 방식에서는 두 개의 반복자가 정의됩니다. 하나는 입력 파일 스트림의 시작을 가리키고 다른 하나는 끝을 가리킵니다. 그런 다음 이러한 반복자로 정의된 범위를 반복하여 벡터를 생성합니다.
읽기 프로세스 중 잠재적인 재할당을 완화하기 위해 Reserve() 메서드를 사용할 수 있습니다.
#include <iterator> std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents; fileContents.reserve(fileSize); fileContents.assign(std::istreambuf_iterator<char>(testFile), std::istreambuf_iterator<char>());
예약함으로써 값을 할당하기 전에 벡터 내의 공간을 줄이면 할당 효율성이 향상되어 메모리 조각화 및 성능 저하 가능성이 줄어듭니다.
위 내용은 파일을 std::벡터로 효율적으로 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!