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

泛型算法COPY中传入 istream_iterator对象无法编译的有关问题

2012-03-20 
泛型算法COPY中传入 istream_iterator对象无法编译的问题intmain(intargc,char**argv){vector intvecco

泛型算法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

热点排行