用c++将矩阵类改为类模板。 设计矩阵类(m×n); a) 实现指定 m ,n 参数的函数(要分配数组空间) b) 实现按位置(row,col)赋值函数。 c) 实现求转置函数 Transpose(); Transpose就是行列对换
时间: 2024-05-11 16:19:44 浏览: 68
以下是一个可能的实现:
```c++
template <typename T>
class Matrix {
public:
Matrix(int m, int n) : m_(m), n_(n) {
data_ = new T[m * n];
}
~Matrix() {
delete[] data_;
}
void set(int row, int col, const T& value) {
data_[row * n_ + col] = value;
}
T get(int row, int col) const {
return data_[row * n_ + col];
}
Matrix<T> Transpose() const {
Matrix<T> result(n_, m_);
for (int i = 0; i < m_; ++i) {
for (int j = 0; j < n_; ++j) {
result.set(j, i, get(i, j));
}
}
return result;
}
private:
T* data_;
int m_;
int n_;
};
```
在这个实现中,我们使用了一个模板类型 `T`,它可以是任何类型。我们使用 `new` 和 `delete[]` 来分配和释放内存。`set` 和 `get` 函数可以按位置赋值和取值。`Transpose` 函数返回一个新的矩阵,它是原矩阵的转置。
阅读全文