여기서 "찾기"함수를 사용하려고합니다. 여기에 '=='연산자에 대한 코드가 있습니다. 그러나 "operator"라는 단어에서 "이 연산자 함수에 대해 너무 많은 매개 변수"오류가 발생합니다.C++의 Vector 구조에서 find 함수에 문제가 발생했습니다.
친절하게 도와 줄 수 있습니까? 감사.
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");
구조체에는 '친구'로 만들 필요가 없습니다. 연산자를 클래스 외부의 비회원으로 정의하면됩니다. –
'친구'의 이유는 무엇입니까? – a1ex07
@ a1ex07 :'friend'는'gr_log' (또는'friend'가 나타나는 클래스)의'private' 멤버에 대한 함수 접근을 제공합니다. 그것은 POD 구조체이기 때문에 모든 멤버는 public이며 'friend'는 혼란을 가져 오지만 아무것도하지 않습니다. –