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...