用C++编写一个简单程序, 输入m、n,建立 m * n 维动态矩阵。
时间: 2024-10-26 08:16:52 浏览: 30
在C++中,我们可以使用`std::vector`来创建动态的二维矩阵,因为它允许我们在运行时根据需要调整大小。下面是一个简单的示例,它接受用户输入的行数`m`和列数`n`,并创建一个相应的动态矩阵:
```cpp
#include <iostream>
#include <vector>
class Matrix {
public:
// 构造函数,初始化一个空矩阵
Matrix(int rows, int cols) : rows_(rows), cols_(cols) {
elements.resize(rows_ * cols_);
}
// 添加元素到矩阵
void set(int row, int col, int value) {
if (row >= 0 && row < rows_ && col >= 0 && col < cols_) {
elements[row * cols_ + col] = value;
} else {
std::cerr << "Invalid index!" << std::endl;
}
}
// 获取矩阵元素
int get(int row, int col) const {
if (row >= 0 && row < rows_ && col >= 0 && col < cols_) {
return elements[row * cols_ + col];
} else {
std::cerr << "Invalid index!" << std::endl;
return -1; // 返回默认值或错误标志
}
}
private:
int rows_, cols_; // 矩阵的行数和列数
std::vector<int> elements; // 存储矩阵元素的向量
};
int main() {
int m, n;
std::cout << "请输入矩阵的行数m和列数n:" << std::endl;
std::cin >> m >> n;
Matrix mat(m, n);
std::cout << "请输入矩阵的元素:" << std::endl;
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
int value;
std::cin >> value;
mat.set(i, j, value);
}
}
std::cout << "矩阵内容为:" << std::endl;
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
std::cout << mat.get(i, j) << " ";
}
std::cout << std::endl;
}
return 0;
}
```
这个程序首先创建一个`Matrix`类,包含构造函数来初始化矩阵大小,`set`方法用于设置元素,以及`get`方法用于获取元素。在主函数中,我们接收用户的输入,创建矩阵并填充元素。
阅读全文