istreambuf_iterator读取二进制文件,ostream_iterator显示为什么这么慢?
istreambuf_iterator读取二进制文件,ostream_iterator显示为什么这么慢?
string InputFileName;//输入文件绝对路径
//vector <char> m_InputData;//输入文件的内容
stringm_InputData;
ifstream m_InputFile;//输入文件对象
m_InputFile.open(m_InputFileName.c_str(), ios_base::binary);
//把输入文件的内容全部写入m_InputData
m_InputData.clear();
copy(istreambuf_iterator <char> (m_InputFile),istreambuf_iterator <char> (),
back_inserter(m_InputData));
copy(m_InputData.begin(), m_InputData.end(),ostream_iterator <char> (cout, " "));
m_InputFile.close();
打开显示文本文件很快,但是是二进制文件则很慢,为什么?
[解决办法]
2进制文件,怎么可以随便用cout。
ostream_iterator <int> (cout, " ")大概勉强可用。
[解决办法]
参考《Effective STL》 Item 29
[解决办法]
楼主你还是再看看《Effective STL》Item 29吧。
http://stl.winterxy.com/html/item_29.html