"weniger" Operator -Überlastung, welchen Weg zu verwenden?
Posted: 15 Feb 2025, 17:16
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:
Was sind die Unterschiede zwischen diesen drei Methoden und was sind die richtigen Orte für jede Version?
- 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;
}