Salut à tous,
voilà, je dois modéliser une architecture à base de tableaux 2D paramétrables, mais je ne sais pas trop si je dois utiliser une bibliothèque spécialisée ou construire une classe moi-même. étant novice en C++ (et en programmation objet en général), je m'adresse à vous.
pour mes besoins, et bien c'est d'avoir un tableau 2D paramétrable (qui sera carré tout le temps à priori). à partir du format initial, disons N*N, je génererai plusieurs matrices de taille (m*m, m<N) (m sera paramétrable) et chaque matrice sera utilisée pour faire certains traitements (moyenne des valeurs du tableau, multiplication par une sclaire de tt le tableau, ...). donc au vu de tout cela, en sachant que ce n'est pas vraiement du C++ que je faire mais du systemC qui est une classe de C++ pour la description matérielle qui permettra de paralléliser les traitements entre autres, quelle modélisation de matrice m'offrira le plus de performance (vitesse d'exécution ) mais aussi de faciliter la modélisation des traitements (par exemple si j'utilise une classe que je définis moi-même, si je dois multiplier la valeur de mes pixels (ma matrice contient des valeurs de pixels) par une constante, je dois écrire une fonction qui le fasse alors qu'avec une librairie spécialisée il y a sûrement des fonctions toute prêtes pour toutes sortes de triatements et qui seront donc plus performantes non?
voici deux classes que j'ai crées:
------------
----------
Code cplusplus : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdio.h> class test{ public: int** tab; public: test(); test(int size){ tab= new int*[size]; for (int i = 0; i < size; i++) tab[i] = new int[size]; } public: int get(int i,int j){ return tab[i][j]; } public: void set(int i,int j,int val){ tab[i][j]=val; } };
-----------
Code cplusplus : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <vector> #define size_def 30 class test{ public: std::vector< std::vector<int> > Tab_2D; public: test(){ Tab_2D.resize(size_def,std::vector<int>(size_def,0)); } test(int size_tab){ Tab_2D.resize(size_tab,std::vector<int>(size_tab,0)); } int get(int i,int j){ return Tab_2D[i][j]; } void set(int i,int j,int val){ Tab_2D[i][j]=val; } void print(){ for(unsigned int i(0); i<Tab_2D.size(); ++i){ for(unsigned int j(0); j<Tab_2D[i].size(); ++j) { printf("%d\n",Tab_2D[i][j]); } } } };
donc voilà, ne m'y connaissant pas vraiment en C++, j'aimerais avoir quelques conseils pour choisir la manière de modéliser mes matrices l'une des classes que j'ai décrites ci-dessus, et laquelle, ou une bibliothèque spécialisée et dans ce cas laquelle? (de sorte à ne pas gaspiller de mémoire pour rien tout ayant une structure maniable le plus facilement possible)
merci d'avance pour vos réponses!
Partager