Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++ stl] function object

    Ciao.
    Ho una struttura del tipo:
    struct punto
    {
    double x;
    double y;
    double z;

    }
    ed un vector:
    vector<punto>vPunti;

    è possibile con i function object estrarre un array del tipo
    double puntiY[];
    contenete tutti i valori Y di tutti i punti delle strutture punto in vPunti?

    Grazie.
    ps . con i function object non con la ricorsione.
    mi interesssano parecchio perchè sto studiando i template e mi piace l'idea di fondo di separare i dati dall' algoritmo.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Certo, ma cosa devi fare esattamente?
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ciao Shodan.
    Ho un array di punti 3d(x,y e z), mettiamo 5 punti x,y e z e vorrei generare tre array uno con i 5punti x , uno con i 5punti y e uno con i 5 punti z.
    Come è meglio fare?
    Grazie.

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Non l'ho testato ma dovrebbe andare bene.
    codice:
    class RetrieveParamX {
    	private:
    		double* pa;
    	public:
    		RetrieveParam(double* a) : pd(a) { ; }
    		void operator()(punto& p){
    			*pa++ = p.x;
    		}		
    };
    
    double da = new double[vec.size()];
    for_each(vec.begin(),vec.end(),RetrieveParamX(da));
    ...
    // alla fine
    delete[] da;
    Questo vale per un singolo array e per copiare la x. Ovviamente si può estendere, parametrizzare etc. Modificando il costruttore, aggiungendo altri due puntatori e altre due copie, puoi creare e copiare tre array in un colpo solo.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.