bonjour,
j'ai besoin de copier une matrice, comment faire
merci
bonjour,
j'ai besoin de copier une matrice, comment faire
merci
Salut,
Il faut passer par le constructeur de copie, que tu redéfinis. Te suffit ensuite de boucler sur les éléments.
Tu peux très bien utiliser cette méthode dans le constructeur de copie, mais dans la mesure où tes matrices n'ont pas la même taille il faudra quand même l'utiliser plusieurs fois / vérifier le nombre d'élements à copier etc ....
Mais tu n'auras pas de méthode toute faite, les constructurs de copie sont là pour ça, donc autant les utiliser, après ce que tu fais à l'intérieur c'est du détail d'implémentation.
tu peux me donner un exemple svp?
voila mon constructeur:
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Matrice::Matrice(unsigned int nl, unsigned int nc) { n = nl; m = nc; lignes = new ligne[n]; // allocations for (unsigned int i=0; i<n; i++) { lignes[i] = new double[m]; for(unsigned int j=0; j<m; j ++) lignes[i][j] = 0; //initialisation à '0' } }
Le constructeur n'a pas d'importance ici, il s'agit de constructeur par copie (expliqué dans la FAQ).
Pour le remplissage, imo ce sera plus lisible en faisant deux boucles imbriquées qu'en passant par l'algo copy, vu que de toute manière tu ne pourras pas l'utiliser tel quel. Après pour le calcul des indices et limites de boucles ça reste du calcul basique donc ça ne devrait pas trop te poser de problèmes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Matrice(const Matrice& rhs) { //... }![]()
memcpy?
je suis débutant, svp aide moi à faire cette méthode
merci beaucoup
Où ai-je parler de memcpy ? Je parle simplement de boucler et d'assigner les valeurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Matrice(const Matrice& rhs) { //boucles for imbriquées avec les indices/limites qui vont bien, indicel et indicec //doivent être calculés en fonction de la taille de la matrice rhs et de la taille de la //matrice que tu cherches à construire. lignes[i][j] = rhs[indicel][indicec]; }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager