template<class T>
class Prin
...{
public:
void operator () (T v)...{cout<<v<<endl;}
};
fstream f("e:/c++lib/1.txt", ios::in);
istream_iterator<char> be = f;
istream_iterator<char> en;
f.close();
vector<char> v(be, en);
for_each(v.begin(), v.end(), Prin<char>());Prin这个类是定义输出操作的函数对象,或者叫类函数,具体怎么叫我也不清楚
istream_iterator<char> be = f; //将文件流赋值到一个输入流的迭代器
istream_iterator<char> en;
vector<char> v(be, en); //将流输入到vector中
这里有个值得注意的地方,上面这一句不能写成:
vector<char> v(istream_iterator<char> be(f), istream_iterator<char>());
因为编译器会把上面一句理解成这样
int v( int n(), int m()); //定义一个函数v
本文介绍如何使用C++中的fstream进行文件读取,并利用迭代器将内容存储到vector中,最后通过函数对象实现内容输出。文章还讨论了在使用迭代器构造vector时的一个常见误区。
2457

被折叠的 条评论
为什么被折叠?



