是否可以提供一个示例,展示如何使用`setMatrix`函数初始化一个新的矩阵对象?
时间: 2024-12-15 19:15:06 浏览: 1
当然可以。让我们看一个具体的示例,假设我们要创建一个`Matrix<int>` 类型的对象,并使用`setMatrix`函数初始化一个2x2的整数矩阵:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义Matrix类
template <typename T>
class Matrix {
private:
vector<vector<T>> matrix_;
public:
// 构造函数用于初始化一个空矩阵
Matrix(size_t rows, size_t cols) : matrix_(rows, vector<T>(cols, 0)) {}
// 使用setMatrix函数初始化一个已存在的矩阵
void setMatrix(const vector<vector<T>>& newMatrix) {
if (newMatrix.size() == matrix_.size()) { // 检查维度是否匹配
matrix_ = newMatrix;
} else {
cout << "Error: Matrix dimensions do not match!" << endl;
}
}
// 示例:创建并初始化新矩阵
int main() {
vector<vector<int>> initialMatrix = {{1, 2}, {3, 4}};
Matrix<int> myMatrix(2, 2);
myMatrix.setMatrix(initialMatrix);
for (const auto& row : myMatrix.matrix_) {
for (const auto& element : row) {
cout << element << ' ';
}
cout << '\n';
}
return 0;
}
};
int main() {
return Matrix<int>::main();
}
```
在这个例子中,我们在`main`函数中创建了一个初始矩阵`initialMatrix`,然后通过`setMatrix`函数将其赋值给`myMatrix`对象。如果矩阵的维度相匹配,它将成功设置;如果不匹配,则会显示错误信息。
阅读全文