Salut,
il y a un moi je voulais tester une class matrice avec des template histoire de faire un class qui peut travailler avec des int double et complex<..>. Seulement je l'ai implémenté du style:
Je me demandait si utiliser un vector<vector<T> > serait plus ou moins efficace que d'utiliser un T**?Code:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 template<class T> class matrice { private: size_t nl; size_t nc; T** tab; public: //Constructors matrice(); matrice(const size_t& li,const size_t& co,const T& val=T()); matrice(const matrice<T>& mat); template<class U> matrice(const matrice<U>& mat); //Destructor ~matrice(){ Reset();} // Operators matrice<T>& matrice<T>::operator=(const matrice<T>& mat); matrice<T>& matrice<T>::operator=(const T& val); template<class U> matrice<T>& operator=(const matrice<U>& mat); T& operator()(const size_t& i, const size_t& j); const T& operator()(const size_t& i,const size_t& j) const; matrice<T>& operator+=(const matrice<T>& mat); matrice<T>& operator-=(const matrice<T>& mat); matrice<T>& operator*=(const matrice<T>& mat); matrice<T>& operator+=(const T& val); matrice<T>& operator-=(const T& val); matrice<T>& operator*=(const T& val); template<class U> friend std::ostream &operator<<(std::ostream &out,matrice<U> &mat); //Methods inline const size_t& Line() const{return nl;} inline const size_t& Column() const{return nc;} bool Allocate(const size_t& li,const size_t& co); void Reset(); template<class U> void Initialize(const U& val); matrice<T>& Transpose(); void Print(std::ostream& out) const; };
Certainement que cette question a été posée mais je vois pas de référence là dessus.
Merci

