sort 函数的问题

shuihanjing1986 2012-08-06 03:37:46
程序运行,错误提示为:
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(197) : error C2914: “std::sort”: 因为函数参数不明确,所以无法推导出 模板 参数
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(197) : error C2914: “std::sort”: 因为函数参数不明确,所以无法推导出 模板 参数
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(197) : error C2784: “void std::sort(_RanIt,_RanIt,_Pr)”: 无法从“std::_Vector_iterator<_Ty,_Alloc>”为“_RanIt”推导 模板 参数
1> with
1> [
1> _Ty=PAIR,
1> _Alloc=std::allocator<PAIR>
1> ]
1> e:\program files\microsoft visual studio 8\vc\include\algorithm(2899) : 参见“std::sort”的声明
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(197) : error C2780: “void std::sort(_RanIt,_RanIt)”: 应输入 2 个参数,却提供了 3 个
1> e:\program files\microsoft visual studio 8\vc\include\algorithm(2751) : 参见“std::sort”的声明
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(433) : error C2914: “std::sort”: 因为函数参数不明确,所以无法推导出 模板 参数
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(433) : error C2914: “std::sort”: 因为函数参数不明确,所以无法推导出 模板 参数
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(433) : error C2784: “void std::sort(_RanIt,_RanIt,_Pr)”: 无法从“std::_Vector_iterator<_Ty,_Alloc>”为“_RanIt”推导 模板 参数
1> with
1> [
1> _Ty=PAIR,
1> _Alloc=std::allocator<PAIR>
1> ]
1> e:\program files\microsoft visual studio 8\vc\include\algorithm(2899) : 参见“std::sort”的声明
1>d:\vtkplatform(huleiceshi-wjc)\meshgrid\meshgrid.cpp(433) : error C2780: “void std::sort(_RanIt,_RanIt)”: 应输入 2 个参数,却提供了 3 个
1> e:\program files\microsoft visual studio 8\vc\include\algorithm(2751) : 参见“std::sort”的声明


这是别人的程序,应该已经验证过,为什么我运行会出现这样的错误提示呢?哪位同学给说说啊,万分感谢。
...全文
391 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
enic 2012-08-06
  • 打赏
  • 举报
回复
貌似大哥还没有贴出源代码,这叫人情何以堪啊,,,
shuihanjing1986 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
检查一下函数参数是否和模板参数数量一致
[/Quote]
指示是 sort(PairVec.begin(), PairVec.end(), operator < ); 这行有问题,和模板里数量是一样的啊。
自信男孩 2012-08-06
  • 打赏
  • 举报
回复
检查一下参数类型或者个数,可能与库里的不一致。
huangdancs 2012-08-06
  • 打赏
  • 举报
回复
检查一下函数参数是否和模板参数数量一致
kingxuke 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:
检查一下函数参数是否和模板参数数量一致

指示是 sort(PairVec.begin(), PairVec.end(), operator < ); 这行有问题,和模板里数量是一样的啊。
[/Quote]

既然重载的是小于(operator <),sort 可以直接用两个参数的形式(但是传入三个也没问题)。楼主如果不愿贴代码的话,可以先试下 sort(PairVec.begin(), PairVec.end()); 看会报什么错。

建议楼主最好贴出代码,当然更希望楼主自己找出解决方案。 Good Luck!
ri_aje 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:
检查一下函数参数是否和模板参数数量一致

指示是 sort(PairVec.begin(), PairVec.end(), operator < ); 这行有问题,和模板里数量是一样的啊。
[/Quote]
你源程序要真是写成这样,是得出错,把 operator< 删了就行了。

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧