Non riesco a capire da cosa possa dipendere...
Qualcuno/a mi aiuterebbe a scoprirlo e a rimediarvi?

Grazie mille

Questo il mio cod. estremamente lento (per completare l'operazione + semplice impiega ca 2 gg)

codice:
using namespace std;
string intToString(int value) {
    stringstream ss;
    ss << value;
    return ss.str();
}
string floatToString(float value) {
    stringstream ss;
    ss << value;
    return ss.str();
}
int main (int argc, char *argv[]) {
//cancello il file ambigeenrati.txt;
unlink("ambigenerati.txt"); /* 0 in caso di successo */
for (int c=1 ; c<91; c++) {
cout << "Valore fisso a girare: ";
cout << c;
cin.get();
//ricancello ambigenerati.txt e il vector dei precedenti ambi creati...
unlink("ambigenerati.txt"); /* 0 in caso di successo */
vec.clear();
//-----------------------------
for( int i=1; i <91; i++ )
{
if( i!=valore1  && i!=valore2 && i!=valore3)
{
// scrivi il valore1, valore2, valore3, i su file
cout << c;
cout << ",";
cout << i;
s += intToString(c);
s += ",";
s += intToString(i);
cout << "\n";
//cout << "stringa: "+s;
cout << "\n";
//cin.get();
insiemedistringhe.push_back(s);
//riazzero stringa...
//CREO FILE
ofstream fout;
fout.open("ambigenerati.txt", ios::app);
//cout << "\nLETTURA DI TUTTO L'INSIEME DELLE SINGOLE COMBINAZIONI SEPARATE:\n\n";
fout << s+"\n";
fout.close();
s="";
}
}
//PROVA VERIFICA con file ESTRAZIONI--------
cout << "\n\n\n"; 
cout << "\n\n\n"; 
cin.get();
ifstream fin("ambigenerati.txt");
if (fin) {
   string s;
   while(fin) // cattura tutti gli errori.
   {
      getline(fin,s); 
     //cout << s;
      vec.push_back(s);
   }
}
int sz = vec.size()-1;
//cout << "\n\n\n"; 
//cout << "Press ENTER to continue...x VISUAZLIZZAZIONE DELLE SINGOLE STRINGHE NELL'ARRAY1..." << endl;
//cout << "\n\n\n"; 
//cin.get();
for (int x=0; x<sz; x++) {
   //contatore++;
    //mostro a video contenuto dell'array formato...
   cout << vec[x];
    }
cout << "\n\n\n  ESEMPIO DI VISUALIZZAZIONE DI UN ELEMENTO ARRAY ALL'INTERNO: ";
//cout << vec[117479];
cout << "\n\n\n";   
cout << "NUMERO DI ELEMENTI DEL VETTORE: ";
cout << "\n\n\n"; 
cout << sz;
cout << "\n\n\n";
//PROVA VISUALIZZAZIONE ARRAY2....
cout << "Press ENTER to continue...x VISUALIZZAZIONE DELLE SINGOLE STRINGHE DELL'ARRAY2..." << endl;
cin.get();
vector<string> vec2;
int contatore2=0;
ifstream f2in("LOTTO-RUOTAVOLUTA.txt");
if (f2in) {
   string s;
   while(f2in) // cattura tutti gli errori.
   {
      getline(f2in,s); 
      //cout << s;
      vec2.push_back(s);
   }
}
int sz2 = vec2.size()-1;
//cout << "\n\n\n"; 
//cout << "Press ENTER to continue...x VISUAZLIZZAZIONE DELLE SINGOLE STRINGHE NELL'ARRAY1..." << endl;
//cout << "\n\n\n"; 
//cin.get();
for (int x=0; x<sz2; x++) {
    //contatore++;
    //mostro a video contenuto dell'array formato...
    cout << vec2[x];
    }
cout << "\n\n\n  ESEMPIO DI VISUALIZZAZIONE DI UN ELEMENTO ARRAY ALL'INTERNO: ";
//cout << vec2[34];
cout << "\n\n\n";   
cout << "NUMERO DI ELEMENTI DEL VETTORE: ";
cout << "\n\n\n"; 
cout << sz2;
cout << "\n\n\n";
cout << "\n\n\n"; 
cout << "Press ENTER to continue...x scomporre elementi stringa di array... in sottoarray relativi..." << endl;
cout << "\n\n\n"; 
cin.get();
//ADESSO HO DUE ARRAY CORRETTAMENTE CARICATI E DEVO PROCEDERE CON IL RAFFRONTO...
//scomposizione di OGNI ELEMENTO STRINGA DI ARRAY1 in RELATIVO SOTTOARRAY1 
//e scomposizione di OGNI ELEMENTO STRINGA DI ARRAY2 in RELATIVO SOTTOARRAY2
for (int z=0; z<sz; z++)  {
cout << vec[z];
contaterzina++;
//prova scomposizione di ogni stringa... nell'array1 (TERZINE)
string testo,estratta;
  vector<string> token;
  int inizio,fine,i,lparola;
  bool continua;
  cout << "Estrae tutte le parole contenute in un testo" << endl;
  //cout << "\nTesto : ";
  //cout << testo;
  testo = vec[z];
  // Estrazione parole (parola racchiusa fra spazi)
  // fra due parole c'e' un solo spazio
  continua = true;
  inizio = -1;	/*1*/
  while(continua){
    fine = testo.find(',',inizio+1);	/*2*/
    // ultima parola
    if(fine==-1){	/*3*/
      continua = false;
      fine = testo.length();	/*4*/
    }
    // Estrazione parola
    lparola = (fine-inizio)-1;	/*5*/
    estratta = testo.substr(inizio+1,lparola);	/*6*/
    token.push_back(estratta);	/*7*/
    inizio = fine;	/*8*/
  }
  // Elenco parole
  cout << "\n\nParole che compongono il testo" << endl;
 // for(i=0;i<token.size();i++)
//}
for (int z2=0; z2<sz2; z2++)  {
cout << vec2[z2];
string testo2,estratta2;
  vector<string> token2;
  int inizio2,fine2,x,lparola2;
  bool continua2;
  testo2 = vec2[z2];
  continua2 = true;
  inizio2 = -1;	/*1*/
 while(continua2){
    fine2 = testo2.find(',',inizio2+1);	/*2*/
    // ultima parola
    if(fine2==-1){	/*3*/
     continua2 = false;
     fine2 = testo2.length();	/*4*/
    }
    // Estrazione parola
    lparola2 = (fine2-inizio2)-1;	/*5*/
    estratta2 = testo2.substr(inizio2+1,lparola2);	/*6*/
    token2.push_back(estratta2);	/*7*/
    inizio2 = fine2;	/*8*/
  }
  // Elenco parole
 cout << "\n\nElementi che compongono la combinazione uscita:\n\n" << endl;
  for(x=0;x<token2.size();x++)
   //cout << "\n\n";
    cout << token2.at(x) << endl;
    cout << "\n\n";
    cout << "N. ";
    cout << contaterzina;
    cout << "\n";
    cout << "COMBINAZIONE:"+testo<< endl;
    //cout << "ELEMENTI combinazione da analizzare:"+token.at(0)+","+token.at(1)+","+token.at(2)+","+token.at(3)<< endl;
    cout << "\n";
    //cout << "\n";
    //cout << "ELEMENTI COMBINAZIONE USCITA:"+token2.at(0)+","+token2.at(1)+","+token2.at(2)+","+token2.at(3)+","+token2.at(4)<< endl;
   cout << "\n\n";
    cout << "RITARDO A in COMBINAZIONE: ";
    cout << conteggio;
    cout << "\n\n";
   //CONTROLLO EVENTUALI VALORI UGUALI E AGGIORNAMENTO INDICI RELATIVI xE (conteggio) e xA (conteggio2)..
    int contaxambo=0;
    for (int y=0; y<token2.size();y++) {
   for (x=0; x<token.size();x++)   {
   //string token9 = token2.at(19).substr(0, token2.at(19).length()-1);
   //cout << "\n";
    if (token2.at(y)==token.at(x)) {    
     contaxambo++;
     cout << "QUANTO VALE CONTAPUNTI ADESSO? ";
       cout << contaxambo;
       //cin.get();
       //VERIFICA X ESTRATTO
      }  
     else
     {    
      } 
   }   
    } 
     cout << "punteggi totali x questa estrazione: ";
      cout << contaxambo;
      //cin.get(); 
     if (contaxambo >=2) {
       cout << "PUNTI:2 SCOVATO!";
        presenze++;
        conteggio=0;
        ritardi.push_back(conteggio);
    } else {
   conteggio++;
    ritardi.push_back(conteggio);
   } 
   vector<int>::iterator max;
   max = max_element(ritardi.begin(), ritardi.end());
   cout << *max << endl;
   cout << ritardi[ritardi.size()-1] << endl;
   int ritardomassimo =*max;
    int ritardoultimo = ritardi[ritardi.size()-1];
    int colpirimanenti = *max-(ritardi[ritardi.size()-1]);
   cout << colpirimanenti;
     cout << "**************************";
     string colpirimanenti3;
   switch (colpirimanenti) {
    case 1:
    colpirimanenti3="01";
    break;
    case 2:
    colpirimanenti3="02";
    break;
    case 3:
    colpirimanenti3="03";
    break;
    case 4:
    colpirimanenti3="04";
    break;
    case 5:
    colpirimanenti3="05";
    break;
    case 6:
    colpirimanenti3="06";
    break;
    case 7:
    colpirimanenti3="07";
    break;
    case 8:
    colpirimanenti3="08";                    
    break;
    case 9:
    colpirimanenti3="09";
    break;
    default:
    colpirimanenti3=intToString(colpirimanenti);
    }
    string rapportorars2;
    string contaestrazioni2;
    string colpirimanenti2;
    string ritardomassimo2;
    string ritardoultimo2;
    string presenze2;
    colpirimanenti2 = intToString(colpirimanenti);
    ritardomassimo2 = intToString(ritardomassimo);
    ritardoultimo2 = intToString(ritardoultimo);
   string colpirimanenti4;
    colpirimanenti4 = colpirimanenti3;
   contaestrazioni2 = intToString(contaestrazioni);
    presenze2 = intToString(presenze);
   string stringariassuntiva = "combinazione: "+testo+" colpirimanenti:"+colpirimanenti4;
   terzineconritardi.push_back(stringariassuntiva);
    }
     string datoultimoterzina0= terzineconritardi[terzineconritardi.size()-1];
          cout << "lo posso valutare adesso???";
       cout << datoultimoterzina0;
    int pos0,pos1,pos2,pos3,pos4,pos5,pos6,pos7,pos8,pos9,pos10,pos11,pos12,pos13,pos14,pos15,pos16,pos17,pos18,pos19,pos20,pos21,pos22,pos23,pos24,pos25,pos26,pos27,pos28,pos29,pos30; 
pos0 =  datoultimoterzina0.find("colpirimanenti:30 ");
pos1 =  datoultimoterzina0.find("colpirimanenti:29 ");
pos2 =  datoultimoterzina0.find("colpirimanenti:28 ");
pos3 =  datoultimoterzina0.find("colpirimanenti:27 ");
pos4 =  datoultimoterzina0.find("colpirimanenti:26 ");
pos5 =  datoultimoterzina0.find("colpirimanenti:25 ");
pos6 =  datoultimoterzina0.find("colpirimanenti:24 ");
pos7 =  datoultimoterzina0.find("colpirimanenti:23 ");
pos8 =  datoultimoterzina0.find("colpirimanenti:22 ");
pos9 =  datoultimoterzina0.find("colpirimanenti:21 ");
pos10 =  datoultimoterzina0.find("colpirimanenti:20 ");
pos11 =  datoultimoterzina0.find("colpirimanenti:19 ");
pos12 =  datoultimoterzina0.find("colpirimanenti:18 ");
pos13 =  datoultimoterzina0.find("colpirimanenti:17 ");
pos14 =  datoultimoterzina0.find("colpirimanenti:16 ");
pos15 =  datoultimoterzina0.find("colpirimanenti:15 ");
pos16 =  datoultimoterzina0.find("colpirimanenti:14 ");
pos17 =  datoultimoterzina0.find("colpirimanenti:13 ");
pos18 =  datoultimoterzina0.find("colpirimanenti:12 ");
pos19 =  datoultimoterzina0.find("colpirimanenti:11 ");
pos20 =  datoultimoterzina0.find("colpirimanenti:10 ");
pos21 =  datoultimoterzina0.find("colpirimanenti:09");
pos22 =  datoultimoterzina0.find("colpirimanenti:08");
pos23 =  datoultimoterzina0.find("colpirimanenti:07");
pos24 =  datoultimoterzina0.find("colpirimanenti:06");
pos25 =  datoultimoterzina0.find("colpirimanenti:05");
pos26 =  datoultimoterzina0.find("colpirimanenti:04");
pos27 =  datoultimoterzina0.find("colpirimanenti:03");
pos28 =  datoultimoterzina0.find("colpirimanenti:02");
pos29 =  datoultimoterzina0.find("colpirimanenti:01");
pos30 =  datoultimoterzina0.find("colpirimanenti:0");
if (pos0 == -1 && pos1==-1 && pos2==-1 && pos3==-1 && pos4==-1 && pos5==-1 && pos6==-1 && pos7==-1 && pos8==-1 && pos9==-1 && pos10==-1 && pos11==-1 && pos12==-1 && pos13==-1 && pos14==-1 && pos15==-1 && pos16==-1 && pos17==-1 && pos18==-1 && pos19==-1 && pos20==-1 && pos21==-1 && pos22==-1 && pos23==-1 && pos24==-1 && pos25==-1 && pos26==-1 && pos27==-1 && pos28==-1 && pos29==-1 && pos30==-1) {     
    cout << "valore non trovato!";
    } 
    else {     
    cout << "valore trovato!";
     ofstream fout7;
fout7.open("RITARDI-AMBI-GENERATI-CON-1-FISSA-punti2-CR-da30a1.txt", ios::app);
	fout7 << datoultimoterzina0;
	fout7 << "\n";
    } 

    cout << "FINE ANALISI... salvataggio nel primo file txt-";
   ofstream fout;
fout.open("RITARDI-AMBI-GENERATI-CON-1-FISSA-punti2.txt", ios::app);
	string datoultimoterzina= terzineconritardi[terzineconritardi.size()-1];
	fout << datoultimoterzina;
	fout << "\n";
contaestrazioni=0;
presenze=0;
presenze3=0;
conteggio=0;
conteggio2=0;
ritardi.clear();
ritardi2.clear();
terzineconritardi.clear();
}
cout << "\n\n\n"; 
cout << "Press ENTER to continue...x CHIUDERE..." << endl;
cout << "\n\n\n"; 
cin.get();
}
cout << "Press ENTER to continue...x CHIUDERE..." << endl;
cout << "\n\n\n"; 
cin.get();

}