请问一个关于find函数的用法

south2000 2003-10-20 06:55:06
我定义了一个结构NODE,它是表示坐标的,包含了一下的头文件:
#include<algorithm>
#include<vector>
using namespace std;
接着,vector<NODE> NodeVector;并且在NodeVector里面装载了若干个NODE类型的数据。

现在我需要在NodeVector里面寻找一个元素,它的值是某个坐标,假设这个坐标就是
MyNode。

我使用这样的语句:find(NodeVector.begin(),NodeVector.end(),MyNode);发现编译不能通过。其中NodeVector在其他运算中没有错误,就是在find语句这里错。系统给出的错误信息是“error C2678: binary '==' : no operator defined which takes a left-hand operand of type 'struct NODE' (or there is no acceptable conversion)”。
我又对逻辑运算符==,!=进行了全局性的重载,发现重载本身没有错,还是在find语句那里错,请问怎么解决啊

...全文
188 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
south2000 2003-10-28
  • 打赏
  • 举报
回复
还是不行
south2000 2003-10-26
  • 打赏
  • 举报
回复
我再试试看,呵呵
谢谢你们啦!
panzhaoping 2003-10-25
  • 打赏
  • 举报
回复
up
darcymei 2003-10-25
  • 打赏
  • 举报
回复
感觉没问题啊
能不能把代码都贴出来
cfpp1234 2003-10-25
  • 打赏
  • 举报
回复
You can follow below code:

struct Nude {

int x,y ;

bool operator==( const Node& rhs ) {
return !(x != rhs.x || y != rhs.y) ; // I use fast compare method
// return (x==rhs.x && y==rhs.y) <--- slow compare method
}
} ;
south2000 2003-10-22
  • 打赏
  • 举报
回复
除此之外我还定义了>,>=,<,<=。
但find函数还是有错。

其中我的NODE是结构体
struct NODE{
int x;
int y;
};//就这么简单的一个结构
ttlb 2003-10-21
  • 打赏
  • 举报
回复
另外,operator== 看起来应该像这样:
class Node
{
...
bool operator == (const Node &rhs)
{
return (this 和 rhs 的每一个元素都相等);
}
...
};
ttlb 2003-10-21
  • 打赏
  • 举报
回复
Node& operator = (const Node &rhs)
{
if (&rhs == this)
return *this;
// 把 this 的每一个元素用 rhs 的元素赋值
}
south2000 2003-10-21
  • 打赏
  • 举报
回复
很感谢,但我的NODE是结构而已,所以赋值=好像重载不起来啊,至少我不会。我给你看看,我重载的比较符号==.这里!=的重载就不给出了,反正与==差不多的。我重载的==是全局性的,在其他函数里面可以正确判断Nod1与Node1是否相等。
bool operator == (NODE& Node1,NODE & Node2)
{
if(Node1.x==Node2.x && Node1.y==Node2.y)
return true;
else
return false;
}

而赋值=的重载就不会了,呵呵
south2000 2003-10-20
  • 打赏
  • 举报
回复
怎么赋值运算符=的重载老错啊,你可以写一个给我看看么?谢谢!
south2000 2003-10-20
  • 打赏
  • 举报
回复
不对啊,你说的是比较运算符啊,我重载了啊,那么我去把赋值运算符在重载一下看看。
ttlb 2003-10-20
  • 打赏
  • 举报
回复
不是find 错,而是你的NODE 没有提供等于操作符。
解决:
为你的NODE 提供一个等于操作符重载;即 bool operator==(const NODE&);

24,854

社区成员

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

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