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

C++ 中的源迭代器

2013-01-05 
C++ 中的流迭代器#include iostream#include vector#include string#include iteratorusing names

C++ 中的流迭代器
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,第二次没机会再次执行输出

热点排行