Intanto indenta bene il codice:
codice:
for (int i = 0; i < presenzemultiple.size(); i++)
{
if (presenzemultiple[i] == presenzemultiple[i+1])
{
contatorevolte++;
cout << "\n contatore volte: ";
cout << contatorevolte;
cout << "\n";
if (contatorevolte>3)
{
cout << "QUESTO VALORE : ";
cout << presenzemultiple[i];
cout << " sembra essere presente ";
cout << contatorevolte;
cout << " volte... verificare!";
cin.get();
sceltissimi.push_back(presenzemultiple[i]);
contatorevolte=0;
}
}
}
Allora stai uscendo dall' array quando viene eseguito il confronto presenzemultiple == presenzemultiple[i+1] perché nell' ultima iterazione i vale size()-1 e stai chiedendo l' elemento presenzemultiple[i+1], che è un elemento che sta al di fuori del vettore.
Poi non va bene fare un solo for, devi fare due for annidati perché il tuo scopo è verificare quali sono le ripetizioni all' interno dell' array, quindi se hai gli elementi:
codice:
indice: i, valore: 4
indice i, valore: 5
indice i valore: 4
Se esegui l' algoritmo su questa porzione di array contatorevolte non viene mai incrementato.Poi prima di pushare un elemento nell' array devi verificare che nons ia già presente.