Manipulation d'un vector bidimentionne en C++

Fermé
etudiantmastere - Modifié par irongege le 12/09/2011 à 02:20
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 12 sept. 2011 à 15:30
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 sept. 2011 à 11:25
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
12 sept. 2011 à 14:47
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 sept. 2011 à 14:51
donne moi une source.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
12 sept. 2011 à 15:11
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 vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 sept. 2011 à 15:30
oui, et le redimensionnement ne se fait pas en une ligne.
En tout cas, ce n'est pas la solution la plus simple.
0