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 > ());
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