Originariamente inviato da oregon
Se nella for seguente aggiungi la riga in grassetto

codice:
  for(int u=k;u<duen-1;u++)
  {
    cout << u+1 << " in " << u << endl;
    v1[u]=v1[u+1];
  }
vedrai che viene visualizzato

8 in 7

che vuol dire che viene leggo l'elemento 8 di v1 che non esiste (probabilmente il programma accede ad una zona di memoria che sta a zero ... ) ...

Il motivo lo devi trovare tu ... probabilmente dovrai capire perche' il valore finale della for va oltre quello che pensi tu ...
Ho controllato ma continuo a non capire. Praticamente dato che il primo elemento di v è un numero non presente in v1, lo vado ad aggiungere grazie al contenuto del controllo if(!ceck), visualizzando il valore all'interno di questo controllo dopo l'inserimento si ha effettivamente come ultimo elemento 2, e duen incrementato di 1 dato che ora gli elementi sono 8. Però poi quando torna su nel for che va a eliminare un elemento dal vettore, risulta l'ultimo elemento come 0.