save and load

This commit is contained in:
2024-02-02 14:41:31 +01:00
parent 464c94ccf1
commit e9321631c5
4 changed files with 53 additions and 21 deletions

View File

@@ -1,9 +1,10 @@
#pragma once
#include <vector>
#include <algorithm>
#include <cmath>
#include <fstream>
#include <iostream>
#include <vector>
template <typename T>
static bool EqualZero(T var) {
@@ -19,9 +20,17 @@ class Matrix {
std::vector<T> m_Data;
public:
Matrix(const std::string& fileNameInput) {
Load(fileNameInput);
}
Matrix(std::size_t lignes, std::size_t colonnes) : m_Lignes(lignes), m_Colonnes(colonnes), m_Dimension(lignes * colonnes) {
m_Data.resize(m_Dimension);
}
Matrix(std::size_t lignes, std::size_t colonnes, std::initializer_list<T>&& initList) :
m_Lignes(lignes), m_Colonnes(colonnes), m_Dimension(lignes * colonnes) {
m_Data = initList;
m_Data.resize(m_Dimension);
}
~Matrix() {}
void Print() const {
@@ -52,15 +61,35 @@ class Matrix {
}
}
/*
void DivideLine(T div, std::size_t line){
for (size_t i = 0; i < count; i++)
{
void Save(const std::string& fileName) {
std::ofstream out{fileName};
if (!out) {
std::cerr << "Impossible de sauvegarder la matrice !\n";
return;
}
out << m_Lignes << " " << m_Colonnes << "\n";
for (std::size_t i = 0; i < m_Lignes; i++) {
for (std::size_t j = 0; j < m_Colonnes; j++) {
out << at(i, j) << " ";
}
out << "\n";
}
}
void Load(const std::string& filename) {
std::ifstream in{filename};
if (!in) {
std::cerr << "Impossible de charger la matrice !\n";
return;
}
in >> m_Lignes >> m_Colonnes;
m_Data.resize(m_Lignes * m_Colonnes);
for (std::size_t i = 0; i < m_Lignes; i++) {
for (std::size_t j = 0; j < m_Colonnes; j++) {
in >> at(i, j);
}
}
}
*/
void GaussJordan() {
int r = -1;