我使用std::vector
:
list_buffer_bytes.resize(BUFFER_SIZE_8_MB);
file_source.read(&vector_buffer_bytes[0], BUFFER_SIZE_8_MB * sizeof(char));
但是如果我将类型从std :: vector更改为std :: list
,我将无法做到答案 0 :(得分:0)
我想这样:
std::list<uchar> lst;
std::ifstream stream("somefile.txt");
for(int i=0;i<8192;i++)
{
uchar a=0;
stream.read(reinterpret_cast<char*>(&a),sizeof(uchar));
lst.push_back(a);
}
此方法的问题来自以下事实:您无法稍后进行强制转换,因为链接列表中的字节(无论是单字节,双字节还是链接的字节)在内存中都不连续。 因此,如果您以后想重铸成另一种类型,可以这样做:
reinterpret_cast<output_type*>(std::vector<uchar>(lst.begin(),lst.end()).data());
希望它能对您有所帮助。