Existe-t-il un bon moyen en C++ d'implémenter (ou de simuler) un type pour un vecteur générique de vecteurs ?
Ignorez la question de savoir quand un vecteur de vecteurs est une bonne idée (à moins qu'il n'existe quelque chose d'équivalent qui est toujours meilleur). Supposons qu'il modélise correctement le problème, et qu'une matrice ne le modélise pas correctement. Supposons également que les fonctions modélisées prenant ces éléments comme paramètres doivent manipuler la structure (par exemple, en appelant push_back), et qu'elles ne peuvent donc pas se contenter de prendre un type générique qui les supporte. [][]
.
Ce que je veux faire, c'est :
template<typename T>
typedef vector< vector<T> > vecvec;
vecvec<int> intSequences;
vecvec<string> stringSequences;
mais bien sûr, ce n'est pas possible, puisque le typedef ne peut pas être modélisé.
#define vecvec(T) vector< vector<T> >
est proche, et éviterait de dupliquer le type dans toutes les fonctions modélisées qui opèrent sur des vecvecs, mais ne serait pas populaire auprès de la plupart des programmeurs C++.