salve a tutti
ho creato un metodo che estrarre un indice
il metodo non deve ritornare finche non estrae un indice diverso tra quelli estratti
allora ho utilizzato la funzione find per cercare se l'indice è stato già estratto, quindi se è contenuto all'interno del vector indici estratti
codice:
int estrai(vector <int> &valori,vector <int> &indici_estratti)
{
int num;
while(1){
short indice=rand()%N; //estraggo un indice
if((std::find(indici_estratti.begin(), indici_estratti.end(),indice))==indici_estratti.end()){
indici_estratti.push_back(indice);
num = valori[indice];
return num;}
}
il problema è che su find ho questo errore e non capisco perchè
error: no matching function for call to 'find(std::vector<int>::iterator, std::vector<int>::iterator, short int&)'

qualcuno mi può aiutare
grazie