2011-05-15 3 views
-1
template<class T,class TV> struct CONJUGATE_GRADIENTS_HELPER{ 
     DEFORMABLE_OBJECT<T,TV>* deformable_object; 
     int partition_id; 
     T time,dt; 
     T alpha,beta; 
     ARRAY<TV>* dX_full; 
     ARRAY<double> *S_dot_Q_partial,*rho_new_partial,*supnorm_partial; 
    }; 

    typedef CONJUGATE_GRADIENTS_HELPER<T,TV> T_CG_HELPER; 
    ARRAY<double> S_dot_Q_partial(particles.particle_ranges->m); 
    ARRAY<T_CG_HELPER> helpers(particles.particle_ranges->m); 

    for(int p=1;p<=particles.particle_ranges->m;p++){ 
      helpers(p).deformable_object=this; 
      helpers(p).partition_id=p; 
      helpers(p).time=time; 
      helpers(p).beta=beta; 
      helpers(p).S_dot_Q_partial=&S_dot_Q_partial; 
    } 

Que signifient les parenthèses dans les aides (p)? Comment pouvons-nous parcourons aides puisque des aides est un objet uniquemodèle struct comme modèle de classe type

Répondre

2

Off va la réponse psychique, puisque je ne sais pas ce que ARRAY est exactement ...

Il semble que votre modèle de classe ARRAY surchargent l'opérateur d'appel de fonction operator() au lieu de l'opérateur d'index operator[]. Il suffit de l'utiliser comme si ces parenthèses () où les parenthèses normales d'indexation de tableau [].
En outre, votre code montre clairement un moyen d'itérer sur helpers avec le for -loop ...

Quoi qu'il en soit, pour une aide supplémentaire nous devons voir le code.

1

helpers est un ARRAY où le premier paramètre de modèle est T_CG_HELPER. Cela signifie probablement que c'est un "ARRAY de T_CG_HELPERs".

Vous ne nous avez pas montré à quoi ressemble la classe ARRAY, il est donc impossible de savoir comment la parcourir. helpers(p) signifie "invoquer la fonction operator() sur helpers, en passant p comme argument".

Questions connexes