Deep Copy: Vektor mit Objekten in anderen Vektor Kopieren.
-
Ich muss einen Vektor mit Verein Objekten sortieren und schreibe die dafür immer wieder in einen anderen Vektor. Jetzt fiel mir aber auf das ja gar nicht die Objekte übergeben werden sondern nur die Referenz. Also, zumindest kommen mit der Methode jetzt Probleme. Wie kopiere ich wirklich das Objekt in den anderen Vektor?
//Für 3 Vereine if (currentFilledSize == 3) { //Muss am Anfang übernommen werden! sortierteVereine[0] = alleVereine[0]; sortierteVereine[1] = alleVereine[1]; sortierteVereine[2] = alleVereine[2]; //Vektor Position 0 mit 1,2 vergleichen if(getPunkte(0) < getPunkte(1)) { sortierteVereine[0] = alleVereine[1]; sortierteVereine[1] = alleVereine[0]; } if(getPunkte(0) == getPunkte(1)) { if(getTore(0) < getTore(1)) { sortierteVereine[0] = alleVereine[1]; sortierteVereine[1] = alleVereine[0]; } } if(getPunkte(0) < getPunkte(1)) { sortierteVereine[0] = alleVereine[1]; sortierteVereine[1] = alleVereine[0]; } if(getPunkte(0) == getPunkte(1)) { if(getTore(0) < getTore(1)) { sortierteVereine[0] = alleVereine[1]; sortierteVereine[1] = alleVereine[0]; } } //Vektor Position 1 mit 2 vergleichen if(getPunkte(1) < getPunkte(2)) { sortierteVereine[1] = alleVereine[2]; sortierteVereine[2] = alleVereine[1]; } if(getPunkte(1) == getPunkte(2)) { if(getTore(1) < getTore(2)) { sortierteVereine[1] = alleVereine[2]; sortierteVereine[2] = alleVereine[1]; } } }
-
sortierteVereine[1] = alleVereine[2]; sortierteVereine[2] = alleVereine[1];
Du speicherst Stelle 2 an Stelle 1. Dann Stelle 1 an Stelle 2, welche vorher überschrieben wurde. Das ergibt wenig Sinn, weil nach dieser Aktion in beiden das steht, was vorher an Stelle 2 stand. Da muss ein temoräres Objekt rein
CMyVecType temp(sortierteVereine[1]); sortierteVereine[1] = alleVereine[2]; sortierteVereine[2] = temp;
-
Wie lege ich denn dieses Temp Objekt an? Bei mir kommt bei CMyVecType temp(sortierteVereine[0]); immer das der CMyVecType nicht kennt.
Soll das nen Verein Objekt sein wenn der Vektor aus Verein Objekten besteht?Das hab ich auch probiert, da kommt dann ein Argumente fehler der bei CMyVecType temp(sortierteVereine[0]); auch kommt
-
Kennt ihr std::swap?
Bye, TGGC (Fakten)
-
aber bei swap wird doch sicher im ausgangsvektor das objekt gelöscht oder nicht?
-