fix: matrix init and assignment

This commit is contained in:
liuyihui 2022-05-18 23:27:05 +08:00
parent a8d6d82050
commit 7ded24a34b
2 changed files with 8 additions and 5 deletions

View File

@ -119,7 +119,8 @@
"style_parser": "cpp",
"vmanip": "cpp",
"element": "cpp",
"tree": "cpp"
"tree": "cpp",
"vertices": "cpp"
}
}
}

View File

@ -41,10 +41,11 @@ matrix<T>::matrix(int n, int m) {
template <class T>
matrix<T>::matrix(const matrix<T>& A) {
size_t number = A.n * A.m;
n = A.n, m = A.m;
element = new T*[n];
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>
@ -54,10 +55,11 @@ template <class T>
matrix<T>& matrix<T>::operator=(const matrix<T>& A) {
if (this != &A) {
delete[] element;
size_t number = A.n * A.m;
n = A.n, m = A.m;
element = new T*[n];
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;
}