Manipulation d'un vector bidimentionne en C++
etudiantmastere
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai utilisé dans mon code C++ un vector bidimentionnel.Mais, j'ai rencontré un problème concernant sa manipulation comme étant un vecteur bidimentionnel.
declaration:
vector<vector <double> > QMatrix (5,vector <double>(5));
Lorsque j'ai changé sa taille, j'ai écrit:
QMatrix.resize(size); (size c'est le produit entre le nombre de colonnes et le nombre de lignes de QMatrix)
j'ai rencontré aussi un problème concernant le parcours de vecteur. j'ai besoin des méthodes qui me permettent de me renvoyer le nombre de colonnes ainsi que le nombre de lignes du vecteur.
Merci
j'ai utilisé dans mon code C++ un vector bidimentionnel.Mais, j'ai rencontré un problème concernant sa manipulation comme étant un vecteur bidimentionnel.
declaration:
vector<vector <double> > QMatrix (5,vector <double>(5));
Lorsque j'ai changé sa taille, j'ai écrit:
QMatrix.resize(size); (size c'est le produit entre le nombre de colonnes et le nombre de lignes de QMatrix)
j'ai rencontré aussi un problème concernant le parcours de vecteur. j'ai besoin des méthodes qui me permettent de me renvoyer le nombre de colonnes ainsi que le nombre de lignes du vecteur.
Merci
2 réponses
-
Salut.
Tu fait l'erreur habituelle du débutant qui crois qu'un vecteur de vecteur est un tableau bidimensionnel.
dans ton vecteur supérieur tu stockes des vecteurs de taille pas forcément identiques. Ce qui veux dire que selon la représentation que tu choisis, tu le nombre de colonnes (respectivement de lignes) a un sens, mais le nombre de lignes (respectivement de colonne) aucun.
Si tu veux faire une classe de matrice, il faut raisonner autrement et tout encapsuler -
La STL en tout cas se "limite" à pair, vector, deque, list, stack, queue, priority_queue, set, multiset, map, et multimap.
Mais tu peux très bien hériter de vector<vector<T>> pour faire ta classe matrix, mais en étant cohérent quant aux dimensions des vecteurs...