바이너리 파일 읽기 최적화
바이너리 파일을 부호 없는 문자 벡터로 최적으로 읽으려면 다음 전략을 고려하십시오.
방법 1: 사용자 정의 벡터 생성
<code class="cpp">std::vector<BYTE> readFile(const char* filename) { std::ifstream file(filename, std::ios::binary); std::streampos fileSize = file.tellg(); file.seekg(0, std::ios::beg); std::vector<BYTE> fileData(fileSize); file.read((char*) &fileData[0], fileSize); return fileData; }</code>
이 방법은 파일 크기에 따라 올바른 크기의 벡터를 명시적으로 생성합니다. 그러나 벡터의 데이터를 char*로 캐스팅하는 것은 바람직하지 않습니다.
방법 2: Istreambuf Iterator
<code class="cpp">std::vector<BYTE> readFile(const char* filename) { std::ifstream file(filename, std::ios::binary); return std::vector<BYTE>((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>()); }</code>
이 방법은 데이터를 char*로 읽는 반복자를 사용합니다. 내부적으로 char 버퍼. 더 짧기는 하지만 서명되지 않은 문자를 읽더라도 여전히 문자 반복자가 필요합니다.
방법 3: 기본 Ifstream 특수화
<code class="cpp">std::vector<BYTE> readFile(const char* filename) { std::basic_ifstream<BYTE> file(filename, std::ios::binary); return std::vector<BYTE>((std::istreambuf_iterator<BYTE>(file)), std::istreambuf_iterator<BYTE>()); }</code>
이 방법은 특수한 입력 파일 스트림을 사용합니다. 서명되지 않은 문자의 경우. 그러나 모든 경우에 적합하지는 않습니다.
최적화
고려사항
위 내용은 바이너리 파일을 부호 없는 문자 벡터로 읽는 것을 최적화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!