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

copy函数的前两个参数,一定是同一个对象的两个迭代器么?该如何处理

2012-03-09 
copy函数的前两个参数,一定是同一个对象的两个迭代器么?C/C++ codestream_iteratorintis(cin)istream_i

copy函数的前两个参数,一定是同一个对象的两个迭代器么?

C/C++ code
     stream_iterator<int>is(cin);      istream_iterator<int>intEOF;      vector<int>v;      copy(is,intEOF,back_inserter(v)); //这个copy很奇怪。     copy(v.begin(),v.end(),ostream_iterator<int>(cout," ")); 


通常copy函数的前两个参数都来自于同一个对象,例如v.begin()和v.end(),例如上例的第二个copy函数

问题是:
第一个copy函数为什么要定义一个单独的intEOF对象,它和前面那个包装了cin对象的iterator,已经是两个不同的iterator了啊,难道不会出错吗?


[解决办法]
都应该是istream_iterator
[解决办法]
LZ可以编译一下试试 是出错的 第一个应该也是istream_iterator,用cin来初始化,表示连接到输入,第二个并没有初始化 表示的就是流结尾,两个迭代器表示了一个范围

热点排行