Viele Male haben wir Objekte von einigen Klassen müssen in Schleifen initialisiert werden betrieben werden bei:Leistungsverbesserung mit lokalen Objekten
Angenommen, ich habe eine Klasse/Struktur:
class employee
{
//member variables
//member methods - getter/setters,etc
}
Nehmen wir nun an möchte ich arbeiten Sie mit jedem Mitarbeiter in einem Array.
Ansatz 1:
for (loop on array of 10 employees)
{
employee emp(loop element); //using constructor of employee for initialization
//operate on the current loop element using emp
}
So wie pro mein Verständnis wird 10 emp Objekte, bis die Schleife finishes.Now da dies beinhaltet keine dynamische Speicherzuweisung erstellt bekommen, sobald die Steuerung geht aus Schleife , werden alle 10 Objekte gelöscht (& Speicher belegt mit 10 wird freigegeben) oder nur das letzte Objekt wird gelöscht (& Speicher belegt mit 9 Objekten wird nicht freigegeben).
Ansatz 2:
for (loop on array of 10 employees)
{
employee *emp=new employee(loop element); //using constructor of employee for initialization
//operate on the current loop element using emp
delete emp;
emp = nullptr;
}
Hier in Programmierer Steuerung ist so können wir die Erinnerung sich in jeder Iteration der Schleife befreien. Obwohl dies auch häufige Zuweisung & Freigabe von Heap-Speicher & verursachen kann einige Verschlechterung im Falle der Schleife ist für eine große Anzahl von Mitarbeitern.
Bitte helfen Sie mir bei der Abfrage in Approach 1 & Bitte schlagen Sie vor, welche der oben genannten Ansätze ist gut und wenn es einen besseren Ansatz für die gleiche?