Déjà là ce n'est pas correct. :lol:
La norme impose
int main() {}
Tout programme qui ne retourne pas un int est considéré mal formé, et ton compilateur ne devrait pas l'accepter.
Quote:
le resultat est mathad4:
1 1 0 0
1-1 0 0
1 1 0 0
1-1 0 0
Le problème est là:
Quote:
copy(mathad2.begin(),mathad2.begin()+2,mathad4.begin());
copy(mathad2.begin(),mathad2.begin()+2,mathad4.begin()+2);
Tes matrices sources sont 2x2 et la cible est 4x4 si je comprends bien.
Evidemment on ne peut pas dire avec certitude, car la seule chose que tu n'as pas donnée est la seule chose importante, à savoir la déclaration de l'itérateur dans mathad4. Mais on peut volontiers parier que tu travailles avec cet itérateur comme si mathad4 était 2x2, d'où le problème.
Et même sans parler d'itérateurs, sur le principe, pour remplir une matrice 4x4 donc à 16 éléménts avec des matrices à 2x2 donc à 4 éléments, il faut faire 4 copies tu ne crois pas ? Puisque, ce me semble, 4 fois 4 = 16 ;) :)
Déjà là ce n'est pas correct. :lol:
La norme impose
Tout programme qui ne retourne pas un int est considéré mal formé, et ton compilateur ne devrait pas l'accepter.
Le problème est là:
Tes matrices sources sont 2x2 et la cible est 4x4 si je comprends bien.
Evidemment on ne peut pas dire avec certitude, car la seule chose que tu n'as pas donnée est la seule chose importante, à savoir la déclaration de l'itérateur dans mathad4. Mais on peut volontiers parier que tu travailles avec cet itérateur comme si mathad4 était 2x2, d'où le problème.
Et même sans parler d'itérateurs, sur le principe, pour remplir une matrice 4x4 donc à 16 éléménts avec des matrices à 2x2 donc à 4 éléments, il faut faire 4 copies tu ne crois pas ? Puisque, ce me semble, 4 fois 4 = 16 ;) :)