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

Programme in C++. Entwicklerforum
Anonymous
 "weniger" Operator -Überlastung, welchen Weg zu verwenden?

Post 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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post