在C++中,你可以通過創建一個類模板來實現自定義矩陣類。以下是一個簡單的示例:
#include<iostream>
#include<vector>
template<typename T>
class Matrix {
public:
// 構造函數
Matrix(int rows, int cols) : rows_(rows), cols_(cols) {
data_.resize(rows);
for (int i = 0; i< rows; ++i) {
data_[i].resize(cols);
}
}
// 獲取矩陣的行數
int rows() const {
return rows_;
}
// 獲取矩陣的列數
int cols() const {
return cols_;
}
// 獲取矩陣中指定位置的元素
T& operator()(int row, int col) {
return data_[row][col];
}
// 獲取矩陣中指定位置的元素(常量版本)
const T& operator()(int row, int col) const {
return data_[row][col];
}
private:
int rows_;
int cols_;
std::vector<std::vector<T>> data_;
};
int main() {
// 創建一個3x3的整數矩陣
Matrix<int> mat(3, 3);
// 初始化矩陣
for (int i = 0; i < mat.rows(); ++i) {
for (int j = 0; j < mat.cols(); ++j) {
mat(i, j) = i * j;
}
}
// 輸出矩陣
for (int i = 0; i < mat.rows(); ++i) {
for (int j = 0; j < mat.cols(); ++j) {
std::cout<< mat(i, j) << " ";
}
std::cout<< std::endl;
}
return 0;
}
這個示例中,我們創建了一個名為Matrix
的類模板,它接受一個類型參數T
。這個類模板包含一個二維向量data_
,用于存儲矩陣的數據。我們還提供了一些成員函數,如rows()
、cols()
和operator()
,以方便地訪問和操作矩陣的元素。
在main()
函數中,我們創建了一個3x3的整數矩陣,并使用嵌套循環初始化和輸出它。你可以根據需要修改這個類模板,以添加更多的功能和操作。