首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

istreambuf_iterator读取二进制文件,ostream_iterator显示为什么这么慢?该怎么解决

2012-02-25 
istreambuf_iterator读取二进制文件,ostream_iterator显示为什么这么慢?istreambuf_iterator读取二进制文

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

热点排行