gpt4 book ai didi

c++ - 在 C++ 的结构 vector 中查找函数的问题

转载 作者:行者123 更新时间:2023-11-30 00:40:18 24 4
gpt4 key购买 nike

我在这里尝试使用“查找”功能。为此,这里是“==”运算符的代码。但是我在“运算符”一词处收到“此运算符函数的参数过多”错误。

谁能帮帮我?谢谢。

struct gr_log
{
string name;
string category;
string description;
float cost;
bool operator==(const gr_log& l, const gr_log& r) const

{
return l.name == r.name;
}

};

和:

vector<gr_log>::iterator it;
it = find (grocery.begin(), grocery.end(), "Sugar");

最佳答案

成员运算符只接受一个参数:

struct gr_log
{
string name;
string category;
string description;
float cost;
bool operator==(const gr_log& r)
{
return name == r.name;
}
};

或者,您可以编写一个 friend 运算符:

struct gr_log
{
string name;
string category;
string description;
float cost;
friend bool operator==(const gr_log& l, const gr_log& r)
{
return l.name == r.name;
}
};

此外,您还需要使用 gr_log 的实例执行查找,因为您无法像您尝试的那样将 gr_log 与字符串进行比较:

it = find (grocery.begin(), grocery.end(), gr_log("Sugar"));

关于c++ - 在 C++ 的结构 vector 中查找函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6351255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com