Originariamente inviato da MItaly
remove non si usa in quel modo e non rimuove effettivamente gli elementi, ma li sposta in fondo; devi usare l'iteratore che ti viene restituito per eliminare questi ultimi usando erase.
che dovrebbe proprio essere quella che cerco ma non riesco ad adattarla ai miei due vector...

http://www.cplusplus.com/reference/a...et_difference/

l'ho provata ad implementare cosi'...


codice:

//PROVA SOTTRAZIONE DI VECTOR ---------------------------------------- riuscito! (da verificare...)


  //int first[] = {5,10,15,20,25};
  //int second[] = {50,40,30,20,10};
  vector<int> v(10);                           // 0  0  0  0  0  0  0  0  0  0
  vector<int>::iterator it2;

  sort(input_int.begin(),input_int.end());//  5 10 15 20 25
  sort(sessantina.begin(),sessantina.end());   // 10 20 30 40 50

    it=set_difference (first, first+5, second, second+5, v.begin());                                              // 5 15 25  0  0  0  0  0  0  0

  cout << "difference has " << int(it2 - v.begin()) << " elements.\n";

  cin.get();


//---------------------------------------------------------------------
se cambio infatti first con input_int e second con sessantina mi da errore...