std中算法如何应用

binwuwu 2003-09-03 08:49:46
近日编程中,用到<algorihtm>中的查找和排序两个算法,对向量vector进行操作find(),sort(),程序调试出现错误:错误部分代码如下
struct cutnum
{
int vehicle;
int weight;
int number
}
typedef vector<cutnum> vtnum;
:
:
:
vtnum temp1;
cutnum temp2;
sort(temp1.begin(),temp1.end());
find(tem1.beging(),temp1.end(),temp2);
在编译的时候,报错说是算法中好象是==运算符要重载,是不是cutnum总需要重载一些运算符才能呢?那位大虾指点一下。
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxjddd 2003-09-08
  • 打赏
  • 举报
回复
还有 operator< 吧。
williamVII 2003-09-08
  • 打赏
  • 举报
回复
nod
limd 2003-09-04
  • 打赏
  • 举报
回复
是的,不然算法怎么知道进行比较呢,就是比较的规则要先定义一下,除非系统内置了
cabbagebai 2003-09-04
  • 打赏
  • 举报
回复
struct cutnum
{
int vehicle;
int weight;
int number
bool operator==(const cutnum &rhs)
{
return (vehicle == rhs.vehicle)
&& (weight == rhs.weight)
&& (number == rhs.number);
}
}
robertnet 2003-09-04
  • 打赏
  • 举报
回复
重载operator==
自定义的数据类型,编译器不知如何处理。
ezhou 2003-09-03
  • 打赏
  • 举报
回复
除非你的数据类型都是内在的。
fengfeng2003 2003-09-03
  • 打赏
  • 举报
回复
你自己的类,标准库设计者当然不知道,类对应的对象怎样才算相等
你要告诉编译器,也就是说重载operator==
  • 打赏
  • 举报
回复
是的,你需要给你的类一个operator ==,因为在STL的代码中可能会用到两个同一类型的等于比较

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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