Quello è il codice per sostituire la carta e funziona così:Originariamente inviato da Habdul
cmq se esiste il .begin() c'è anche il .end().
Senza che fai quel "+i" che suona brutto!!! Aggiorni ogni volta al nuovo .end()!!! E' molto + leggibile e ottimizzato!
quella 'i' corrisponde all'idCard, ad esempio se io ho 5 carte in mano elencate così:
1. nomecarta
2. nomecarta
3. nomecarta
4. nomecarta
5. nomecarta
l'utete premendo 2(sarebbe 1 dato che si parte da 0) inserisce prima dell'elemento puntato dall'iteratore alla posizione inizio + id l'ultima carta del mazzo, dopo devo eliminare la carta di prima che sarà slittata di una posizione quindi inizio + id + 1. Ecco il codice del metodo completo:
Oro provo a capire come far funzionare con .end() l'eliminazione dell'ultima carta del mazzo e se ho problemi posto.codice://'c' è l'ultima carta del mazzo, i la posizione da cambiare void Mano::change(Carta c, int i) { vector<Carta>::iterator it = mano.begin() + i; mano.insert(it, c); mano.erase(it+1); }
ciao e grazie![]()