用重载运算符输入输出矩阵
时间: 2023-07-01 18:29:26 浏览: 123
矩阵类的运算符重载
好的,以下是一个简单的矩阵类,它支持重载输入输出运算符:
```c++
#include <iostream>
#include <vector>
using namespace std;
class Matrix {
public:
Matrix(int rows, int cols) {
this->rows = rows;
this->cols = cols;
data.resize(rows, vector<double>(cols, 0.0));
}
void print() const {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << data[i][j] << "\t";
}
cout << endl;
}
}
friend istream& operator>>(istream& in, Matrix& matrix) {
for (int i = 0; i < matrix.rows; i++) {
for (int j = 0; j < matrix.cols; j++) {
in >> matrix.data[i][j];
}
}
return in;
}
friend ostream& operator<<(ostream& out, const Matrix& matrix) {
for (int i = 0; i < matrix.rows; i++) {
for (int j = 0; j < matrix.cols; j++) {
out << matrix.data[i][j] << "\t";
}
out << endl;
}
return out;
}
private:
int rows, cols;
vector<vector<double>> data;
};
```
你可以在 main 函数中这样使用:
```c++
int main() {
Matrix m(3, 3);
cout << "Please input matrix:" << endl;
cin >> m;
cout << "The matrix you input is:" << endl;
cout << m;
return 0;
}
```
这里我们定义了一个 Matrix 类,它包含两个私有成员变量 rows 和 cols 表示矩阵的行数和列数,以及一个二维向量 data 存储矩阵数据。我们重载了输入输出运算符 >> 和 <<,分别用于从标准输入读取矩阵数据和将矩阵数据输出到标准输出。在 main 函数中,我们首先创建一个 3x3 的矩阵 m,然后从标准输入读取数据并输出到标准输出。
阅读全文