Manipulation d'un vector bidimentionne en C++

etudiantmastere -  
Char Snipeur Messages postés 9813 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


2 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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
0
etudiantmastere
 
Mais, j'ai cherché sur internet et j'ai trouvé qu'il existe en C++ un vecteur bidimentionnel mais il n'y a pas beaucoup de détail sur sa manipulation.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
donne moi une source.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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...
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
oui, et le redimensionnement ne se fait pas en une ligne.
En tout cas, ce n'est pas la solution la plus simple.
0