Page 1 of 1

"weniger" Operator -Überlastung, welchen Weg zu verwenden?

Posted: 15 Feb 2025, 17:16
by Anonymous
In einer Header -Datei habe ich einen Strukturdatensatz definiert. Ich würde es gerne für eine mögliche Sortierung verwenden, also möchte ich den weniger Bediener überladen. Hier sind drei Möglichkeiten, die ich in verschiedenen Code bemerkt habe. Ich habe grob bemerkt, dass:
  • Wenn ich Datensatz in einen std :: set einfügen möchte, map , priority_queue ,… Container, die Version 2 funktioniert (wahrscheinlich auch Version 3). Datensatz> v und dann aufrufen make_heap (v.ebegin (), v.end ()) usw. Dann funktioniert nur Version 1.

Code: Select all

struct Record
{
char c;
int num;

//version 1
bool operator num>rhs.num;
}

//version 2
friend bool operator num>rhs->num;
}
};
< /code>
In derselben Header -Datei zum Beispiel: < /p>
//version 3
inline bool operator num>rhs->num;
}
Was sind die Unterschiede zwischen diesen drei Methoden und was sind die richtigen Orte für jede Version?