[Solira] C++ e librerie STL
Salvatore Sittinieri
sittisal a gmail.com
Dom 6 Apr 2008 13:40:56 CEST
Il giorno 06/apr/08, alle ore 13:03, EnneBi ha scritto:
> Mi sono ritrovato un programmino scritto un po' di tempo fa e volevo
> trovare una soluzione piu' elegante a quella utilizzata ma non capisco
> il problema (forse era questo che allora mi ha spinto alla "soluzione"
> adotta).
>
> Mi spiego. Il problema puo' tradursi cosi:
>
> c'e' un vettore v1, per esempio di int e voglio selezionare, per
> esempio, gli elementi > 10 e metterli in v3. Allora definisco
>
> int prova(int& va){
prende il puntatore ad un vettore...
> if(va>10) return va;
vede se l'elemento e' maggiore di 10 e ritorna l'intero...
> else return 0;
> };
> ....
> transform(v1.begin(),v1.end(),v3.begin(),prova);
Perche' non passo niente alla funzione prova se vuole come parametro
un vettore?
> Fin qui tutto Ok. Il problema si pone se voglio parametrizzare il
> valore, invece di usare sempre 10.
> Io provo a definire una funzione binaria:
>
> int prova2(int& va, int vb){
se provi a dichiarare int vb2; vb2=vb; printf("vb=vb2: %d",vb2); cosa
stampa?
> if(va>vb) return va;
> else return 0;
> };
> ....
> transform(v1.begin(),v1.end(),v3.begin(),bind2nd(prova2(),10));
il tipo del primo parametro di bind2nd e' compatibile con int?
>
> ma mi da, nella riga di definizione della funzione:
> error: too few arguments to function prova3(int&, int)
>
Non vedo prova3...
Sa magari posti il sorgente intero provo a compilare e vedo di capirci
qualcosa di piu'...
Maggiori informazioni sulla lista
Solira