2011-12-16 4 views
0

Je me demandais pourquoi cela fonctionne et si elle est vraiment risqué ou non ...boost :: multi_array contenant boost :: carré uBLAS :: matrice <double> de tailles différentes

Je veux que les éléments d'un boost :: multi_array tenir des boites boost :: ublas de différentes tailles (tailles définies à l'exécution). Dans l'en-tête j'ai défini typedef::boost::ublas::matrix<double> Matrix; et typedef::boost::multi_array<Matrix,1> Tensor;.

Maintenant en main(){} je l'ai fait une Tensor tensor(boost::extents[some_number]); puis « mémoire allouée » à elle en faisant:

for(int i=0; i<some_number; i++){ 
    tensor[i] = Matrix(runtime_defined_number, runtime_defined_number); 
} 

Maintenant, je passe mes Tensor &tensor autour de fonctions et faire des choses avec elle ...

Est-ce fou? Si oui, pourquoi cela fonctionne-t-il? Y a-t-il une meilleure façon de faire quelque chose comme ça?

Répondre

0

En fait, vous pouvez créer un vecteur de matrices puisque vous travaillez uniquement avec un tableau à une dimension. Il n'y a pas besoin de boost :: multi_array ici.

Questions connexes