Salut à toutes et à tous !
Me revoilà à gratouiller des conseils
J'ai un type de données D à deux dimensions (spatial/temporel). Pour des raisons pratiques, il me paraissait mieux d'implémenter ça sous forme de vecteurs de vecteurs et non de matrices (j'ai essayé, c'était le bazar, j'ai fait demi-tour).
Maintenant, j'aimerais appliquer un foncteur à chaque double contenu dans le champs m_data. Bon, y'a du foreach de foreach dans l'air, ça ça devrait aller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 class D { public: D(); D(const std::string & name, const std::vector<std::vector<double> >& data); virtual ~D(); // Read-Only Iteration along first dimension typedef std::vector<std::vector<double> >::const_iterator const_iterator; const_iterator begin() { return m_data.begin(); } const_iterator end() { return m_data.end(); } protected: private: std::string m_variableName; std::vector<std::vector<double> > m_data; int m_spatialLength; int m_temporalLength; };
Mais j'ai du mal à intuiter (et googliser) sur qui doit faire quoi.
Est-ce que c'est le foncteur qui décortique la donnée D avec des foreach pour finalement s'appliquer sur chacun des doubles, ou est-ce que c'est la donnée qui accueille un pointeur sur le foncteur pour descendre les dimensions et l'appliquer sur chaque double ?
Infos:
- m_data est assez gros, normalement constant, on a accès à D via un shared_ptr. Je ne sais pas trop quand le déférencer (ni même si je dois le faire).
- le foncteur est une composition utilisable via un unique_ptr
Merci d'avance de votre aide !![]()
Partager