2 u010881025 u010881025 于 2014.04.25 17:14 提问

在c++中,在流迭代器中使用sort报错

代码如下:
std::istream_iterator sii(std::cin),eof;
std::ostream_iterator oii(std::cout," ");
std::sort(sii,eof);//该行代码报错

//错误如下:

错误 2 error C2784: “'unknown-type' std::operator -(std::move_iterator<_RanIt> &,const std::move_iterator<_RanIt2> &)”: 未能从“std::istream_iterator<_Ty>”为“std::move_iterator<_RanIt> &”推导 模板 参数 e:\vs2012安装\vc\include\algorithm 3702 1 ConsoleApplication3
错误 3 error C2784: “'unknown-type' std::operator -(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)”: 未能从“std::istream_iterator<_Ty>”为“const std::reverse_iterator<_RanIt> &”推导 模板 参数 e:\vs2012安装\vc\include\algorithm 3702 1 ConsoleApplication3
错误 4 error C2784: “'unknown-type' std::operator -(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)”: 未能从“std::istream_iterator<_Ty>”为“const std::_Revranit<_RanIt,_Base> &”推导 模板 参数 e:\vs2012安装\vc\include\algorithm 3702 1 ConsoleApplication3
错误 6 error C2780: “void std::_Sort(_RanIt,_RanIt,_Diff,_Pr)”: 应输入 4 个参数,却提供了 3 个 e:\vs2012安装\vc\include\algorithm 3702 1 ConsoleApplication3
错误 5 error C2676: 二进制“-”:“std::istream_iterator<_Ty>”不定义该运算符或到预定义运算符可接收的类型的转换 e:\vs2012安装\vc\include\algorithm 3702 1 ConsoleApplication3

1个回答

u013487029
u013487029   2014.05.15 20:43

我简单写了一段代码,作用是将输入的字符串直接输出,可以说明你出现的问题:

copy( istream_iterator< string >( cin ), istream_iterator< string >(), ostream_iterator< string >( cout, " " ) );

你的问题是:输入输出流的类型是什么??我上面的代码是std::string.没有类型,当然出错.

Csdn user default icon
上传中...
上传图片
插入图片