salve,
ho un vector di puntatori a un oggetto e voglio sostituire uno dei valori puntato dal vector
con un nuovo valore...
ho scritto questo codice (scusate se magari è poco "elegante" ma sono abbastanza inesperto)
float newX, newY;
cout << "quale punto vuoi spostare?";
cin >> x >> y;
cout << "scegli un nuovo punto ";
cin >> newX >> newY;
class_point* newP = new class_point(newX, newY);
/* --- leggo il vettore: se x = oldX AND y = oldY, allora oldX = newX e oldY = newY --- */
for (int var = 0; var < vett_punti.size(); ++var) {
class_point* p = vett_punti[var];
float oldX = p->getX();
float oldY = p->getY();
if (oldX == x && oldY == y) {
delete vett_punti[var];
vett_punti.erase(vett_punti.begin() + var);
vett_punti.insert(vett_punti.begin() + var, newP);
}
}
....mi cancella il contenuto però non mi inserisce il nuovo valore
inserito; se leggo il vettore mi da solo gli indirizzi di memoria, non i dati
qualcuno potrebbe spiegarmi?
grazie...