std::Vector
해결책은 반복자를 사용하는 것입니다. 입력 streambuf 반복자를 생성하고 이를 사용하여 벡터를 구성하면 중간 복사본 없이도 파일 내용을 벡터에 직접 할당할 수 있습니다. 다음 코드 조각은 이 접근 방식을 보여줍니다.
#include<iterator> std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents((std::istreambuf_iterator<char>(testFile)), std::istreambuf_iterator<char>());
성능 문제를 위해 할당하기 전에 벡터에 공간을 예약하면 재할당을 방지할 수 있습니다.
std::vector<char> fileContents; fileContents.reserve(fileSize); fileContents.assign(std::istreambuf_iterator<char>(testFile), std::istreambuf_iterator<char>());
위 내용은 오버헤드 없이 `std::벡터`로 파일을 효율적으로 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!