2012-03-04 2 views
2

zlib 압축 (압축 해제) 된 데이터가있는 벡터가 있습니다. Boost의 filtering_istream으로 압축을 풀고 싶습니다. 해당 사이트에는 하나의 예제 만 있습니다.이 예제는 데이터 스트림 (내가 가지고있는 벡터와 반대)에서 작동합니다.어떻게 Boost를 사용하여 압축 된 데이터의 벡터를 압축 해제 할 수 있습니까?

vector<char> compressed_buffer; 
compressed_buffer.resize(cdh.length); 
file.read(&compressed_buffer[0], cdh.length); 

filtering_istream in; 
in.push(zlib_decompressor()); 
in.push(something(compressed_data)); // what should "something" be? 

비 압축 데이터를 벡터로 가져오고 싶습니다. 어떻게해야합니까?

답변

3

array_source 어때요?

in.push(array_source(&*compressed_data.begin(), &*compressed_data.end())); 

그런 다음 새로운 벡터에 결과 문자를 추진하는 std::insert_iteratorboost::iostreams::copy를 사용합니다.

+0

감사합니다. 나중에 참조 할 수 있도록 std :: back_inserter를 사용하여 inster_iterator를 구성했습니다. –

+0

@ TamásSzelei : 오른쪽에 대한 소리 :) –

관련 문제