Matrice (avec template)

Description

Classe C++ Matrice<T> proposant la gestion d'une matrice 2D classique.
Opérateurs surchargés présents:
=, +, +=, -=, *, *=, /, /=

(Addition avec un nombre réel/une matrice,
soustraction avec un nombre réel/une matrice,
multiplication avec un nombre réel/une matrice,
division avec un nombre réel)

Utilise le conteneur de la STL vector pour la gestion du tableau 2D.
Gestion des exceptions (attrapées avec string)
Plusieurs méthodes utiles sont mises à disposition.

CLASSE NON ACHEVEE A 100%. MANQUE DE METHODES LIEES A UNE MATRICE (Determinant, inverse...)

Si erreur merci de me le signaler !
Je ne prétends pas du tout que cette classe est optimisée et rapide, ni qu'elle est complète, mais c'est plutôt pour "m'entrainer" au C++. Merci d'être indulgent sur le code !

Contenu du .zip:
-> main.cpp (Exemple de fonctionnement de cette classe)
-> Matrice.h
-> Matrice.cbp (Projet Code::Blocks)

Source / Exemple :


// Je mets le main.cpp comme source (Matrice.h trop long)

#include <iostream>
#include "Matrice.h"

int main(void)
{
    Matrice<float> mat1(2, 3); // Ordre : 2x3 : nbLignes = 2, nbColonnes = 3

    // Les valeurs valent 0 (par defaut)
    mat1 += 9.4f; // Valeurs valent maintenant 9.4
    mat1.Afficher(); // = cout << mat1 << endl;

    Matrice<int> mat2(6, 7, 12); // Valeurs initialisees a 12

    std::cout << mat2 <<  std::endl; // Affiche une grille de 12
    mat2.Remplir(3); // Valeurs valent 3

    mat2(0, 3) = 9; // Modification d'une seule valeur.

    try
    {
        mat2(10, 6) = 4; // ERREUR : En dehors du tableau (6x7)
    }
    catch (std::string &e)
    {
       std::cout << e << std::endl; // Gestion de l'exception
    }

    Matrice<int> mat3 = mat2 * 2; // L'ordre de mat3 est celui de mat2

    mat3 += 8;
    mat3.Afficher();

    std::cout << mat3.GetLgns() << std::endl; // Affiche 6
    mat3.Redimensionner(4, 4); // L'ordre vaut 4x4, on n'efface pas les valeurs actuelles
    std::cout << mat3.GetLgns() << std::endl; // Affiche 4

    // On stocke les valeurs de la matrice dans un tableau 2D
    Matrice<int>::Matrice2D myTab1 = mat3.GetTableau();
    // EQUIVAUT A
    std::vector<std::vector<int> > myTab2 = mat3.GetTableau();

    std::cout << myTab1[0][0] << std::endl; // Affiche 14
    // EQUIVAUT A
    std::cout << mat3(0, 0) << std::endl;

    return 0;
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.