读书人

泛型算法COPY中传入 istream_iterator

发布时间: 2012-03-20 14:01:11 作者: rapoo

泛型算法COPY中传入 istream_iterator对象无法编译的问题
int main(int argc,char **argv)
{
vector <int> vec; copy(istream_iterator <int> (cin),istream_iterator <int> (),back_inserter(vec));
system( "pause ");
}
以上代码可正常编译


如果改成


int main(int argc,char **argv)
{
vector <int> vec;
istream_iterator <int> isiter1(cin);
istream_iterator <int> isiter2();
copy(isiter1,isiter2,back_inserter(vec));
system( "pause ");
}
就编译不过了。

为什么istream_iterator对象一定要在copy()中构造?


[解决办法]
改成:
vector <int> vec;
istream_iterator <int> isiter1(cin);
istream_iterator <int> isiter2;
copy(isiter1, isiter2, back_inserter(vec));


C++中,
class A;
A a();//声明了一个函数a,返回值类型是A。
A a;//这才是定义一个对象。

[解决办法]
int main(int argc,char **argv)
{
vector <int> vec; copy(istream_iterator <int> (cin),istream_iterator <int> (),back_inserter(vec));
system( "pause ");
}
直接编译过去
VC9

读书人网 >C++

热点推荐