ho risolto cosi' coi vector:
codice:typedef vector<int> intV; intV v, v2, v3Union; v.push_back(0); v.push_back(1); v.push_back(2); v.push_back(3); v2.push_back(0); v2.push_back(1); v2.push_back(2); v2.push_back(55); intV::iterator it = v3Union.begin(); set_difference(v.begin(), v.end(), v2.begin(), v2.end(), insert_iterator<intV>(v3Union,it)); vector<int>::iterator itOut; for(itOut = v3Union.begin();itOut!= v3Union.end();++itOut) std::cout << *itOut << "\n";
č corretto?
ma ..
come ad es č stato creata la funzione difference o union? penso che debbano aver accesso a tutto il vector , non solo per range indice e indice +1!soprattutto come si creano degli operatori di quel tipo , per ampliare le funzionalitą.
altra domanda sul tema ma piu generica:
da quanto ho capito nella programmazione generica i function object evitano i cicli(oltre a separare l'algoritmo dall'implementazione) e lavorano sull' iterazione dell'oggetto indice corrente , oggetto indice corrente +1 , questo non č limitante?se voglio tenere in conto l'indice +1 del 3 o del 4 oggetto nel container come faccio?
come posso passare parametri tenendo conto dell ' indice + x?
poi, come posso definire un function object che ispeziona dei dati interni della struttura per vedere se sono modificati?tipo il less
grazie.

Rispondi quotando