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

vector 用istream_iterator初始化不能输入值解决方法

2012-03-05 
vector 用istream_iterator初始化不能输入值intmain(){vector intvec(istream_iterator int (cin),ist

vector 用istream_iterator初始化不能输入值
int   main()
{
        vector <int>   vec(istream_iterator <int> (cin),
                                        istream_iterator <int> ());
        system( "pause ");
}
执行时却没出现输出光标,直接跳出程序了.
这是为什么啊?

[解决办法]
貌似在某个代码范例中看过,是不是你少抄了什么东西?
[解决办法]
它的唯一的初始化声明是这样的:istream_iterator <Type> name(istream&);
估计它不支持临时对象的创建;而且好像vector好像不支持这么初始化吧;
楼主可以这么改:vector <int> vec;
istream_iterator <int> input(cin),eos;
ostream_iterator <int> oupput(cout);
copy(input,eos,inserter(vec,vec.begin ()));
要在屏幕上输出可以这么做:
copy(vec.begin (),vec.end (),output);

[解决办法]

int main()
{
vector <int> vec(istream_iterator <int> (cin),
istream_iterator <int> ());
system( "pause ");
}

Effective STL:
vector <int> vec( ( istream_iterator <int> (cin) ), istream_iterator <int> () ); // 注意加一个括号

热点排行