zebrach77

Untitled

Sep 6th, 2022
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. // m columns, n lines
  3. class Matrix {
  4. public:
  5.     Matrix(size_t m, size_t n, int value) : m_(m), n_(n), mx_(new int*[m]) {
  6.         for (size_t i = 0; i < m; ++i) {
  7.             for (size_t j = 0; j < n; ++j) {
  8.                 mx_[i][j] = value;
  9.             }
  10.         }
  11.     }
  12.  
  13.     Matrix& operator=(Matrix&& new_matr) {
  14.         if(this == std::addressof(new_matr)){
  15.             return *this;
  16.         }
  17.         for (size_t i = 0; i < m_; ++i) {
  18.             delete[] mx_[i];
  19.         }
  20.         delete[] mx_;
  21.         mx_ = new_matr.mx_;
  22.         new_matr.mx_ = nullptr;
  23.         new_matr.n_ = 0;
  24.         new_matr.m_ = 0;
  25.         return *this;
  26.     }
  27.  
  28.     Matrix& operator=(const Matrix& new_matr) {
  29.         if(this == std::addressof(new_matr)){
  30.             return *this;
  31.         }
  32.         for (size_t i = 0; i < m_; ++i) {
  33.             delete[] mx_[i];
  34.         }
  35.         delete[] mx_;
  36.         mx_ = new int*[new_matr.m_];
  37.  
  38.         for (size_t i = 0; i < new_matr.m_; ++i) {
  39.             for (size_t j = 0; j < new_matr.n_; ++j) {
  40.                 mx_[i][j] = new_matr.mx_[i][j];
  41.             }
  42.         }
  43.     }
  44.    
  45.  
  46.  
  47.  
  48.     ~Matrix() {
  49.         for (size_t i = 0; i < m_; ++i) {
  50.             delete[] mx_[i];
  51.         }
  52.         delete[] mx_;
  53.     }
  54. private:
  55.     int** mx_;
  56.     size_t m_;
  57.     size_t n_;
  58. };
Advertisement
Add Comment
Please, Sign In to add comment