IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

matrice et copie


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 45
    Points : 28
    Points
    28
    Par défaut matrice et copie
    bonjour,
    j'ai besoin de copier une matrice, comment faire
    merci

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Points : 444
    Points
    444
    Par défaut
    Salut,

    Il faut passer par le constructeur de copie, que tu redéfinis. Te suffit ensuite de boucler sur les éléments.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Points : 444
    Points
    444
    Par défaut
    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.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    tu peux me donner un exemple svp?

    voila mon constructeur:

    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'
       }
    }
    merci

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Points : 444
    Points
    444
    Par défaut


    Citation Envoyé par dev0077 Voir le message
    voila mon constructeur:
    ...
    Le constructeur n'a pas d'importance ici, il s'agit de constructeur par copie (expliqué dans la FAQ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Matrice(const Matrice& rhs) {
    //...
    }
    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

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    memcpy?
    je suis débutant, svp aide moi à faire cette méthode
    merci beaucoup

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Points : 444
    Points
    444
    Par défaut
    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];
    }

Discussions similaires

  1. faire une copie de matrice
    Par SHILI1 dans le forum C++
    Réponses: 3
    Dernier message: 09/05/2013, 17h38
  2. [Débutant] Copie d'une ligne prédéfinie x fois dans une matrice
    Par franck34matlab dans le forum Images
    Réponses: 7
    Dernier message: 12/01/2013, 10h22
  3. copie de matrice
    Par alaninho dans le forum C++
    Réponses: 5
    Dernier message: 04/10/2012, 14h10
  4. boucle for, copie de matrice et concatenation
    Par Tibtib dans le forum MATLAB
    Réponses: 6
    Dernier message: 31/03/2010, 17h18
  5. Copie de matrices
    Par Javabad dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 07/05/2008, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo