C++ 中的源迭代器
C++ 中的流迭代器#include iostream#include vector#include string#include iteratorusing names
C++ 中的流迭代器

#include <iostream>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
int main()
{
ostream_iterator<string> out_iter(cout," ");
istream_iterator<string> in_iter(cin),eof;
while (in_iter!=eof){
*out_iter++=*in_iter++;
}
return 0;
}
这个程序运行的时候怎么就打印一个hello? world得到ctrl+z,使流无效后才能打印,怎么回事??
[解决办法]*out_iter++=*in_iter++;
相当于
temp1 = in_iter;
temp2 = out_iter;
in_iter++; // 第一次偏移string内存大小后指向world,第二次指向end,直接阻塞再次接受输入
out_iter++; //
*temp2 = *temp1 ; //第一次赋值所以输出out_iter输出流hello,第二次没机会再次执行输出