fix: matrix init and assignment
This commit is contained in:
parent
a8d6d82050
commit
7ded24a34b
|
@ -119,7 +119,8 @@
|
||||||
"style_parser": "cpp",
|
"style_parser": "cpp",
|
||||||
"vmanip": "cpp",
|
"vmanip": "cpp",
|
||||||
"element": "cpp",
|
"element": "cpp",
|
||||||
"tree": "cpp"
|
"tree": "cpp",
|
||||||
|
"vertices": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -41,10 +41,11 @@ matrix<T>::matrix(int n, int m) {
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
matrix<T>::matrix(const matrix<T>& A) {
|
matrix<T>::matrix(const matrix<T>& A) {
|
||||||
size_t number = A.n * A.m;
|
n = A.n, m = A.m;
|
||||||
element = new T*[n];
|
element = new T*[n];
|
||||||
for (int i = 0; i < n; i++) element[i] = new T[m];
|
for (int i = 0; i < n; i++) element[i] = new T[m];
|
||||||
std::copy(A.element, A.element + number, element);
|
for (int i = 0; i < n; i++)
|
||||||
|
for (int j = 0; j < m; j++) element[i][j] = A.element[i][j];
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
|
@ -54,10 +55,11 @@ template <class T>
|
||||||
matrix<T>& matrix<T>::operator=(const matrix<T>& A) {
|
matrix<T>& matrix<T>::operator=(const matrix<T>& A) {
|
||||||
if (this != &A) {
|
if (this != &A) {
|
||||||
delete[] element;
|
delete[] element;
|
||||||
size_t number = A.n * A.m;
|
n = A.n, m = A.m;
|
||||||
element = new T*[n];
|
element = new T*[n];
|
||||||
for (int i = 0; i < n; i++) element[i] = new T[m];
|
for (int i = 0; i < n; i++) element[i] = new T[m];
|
||||||
std::copy(A.element, A.element + number, element);
|
for (int i = 0; i < n; i++)
|
||||||
|
for (int j = 0; j < m; j++) element[i][j] = A.element[i][j];
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue