C++进行矩阵运算类库 头文件:Matrix.h #ifndef MATRIX_H #define MATRIX_H #include "iostream" #include "string" #include #include #include #include //istringstream 必须包含这个头文件 using namespace std; class Matrix { public: void readMatrix(string fileName); void showMatrix(); void writeMatrix(string str); void inversion();//求矩阵的逆矩阵 void change();//求矩阵的转置 void operator +(Matrix &a);//声明重载运算符的“+”函数 void operator -(Matrix &a);//声明重载运算符的“-”函数 void operator *(Matrix &a);//声明重载运算符的“*”函数 void operator =(Matrix &a);//声明重载运算符的“=”赋值函数 vector> _mat; int row; int col; }; #endif 源文件:main.cpp #include "iostream" #include "string" #include #include #include #include //istringstream 必须包含这个头文件 #include "Matrix.h" #include //使用随机数 #include //数学计算 using namespace std; //将运算得到的数据存储到box 中,形成一个完整的Matrix 量 Matrix box_mul;//矩阵相乘的结果 Matrix box_inver;//矩阵的逆的结果 Matrix box_change;//矩阵转置的结果 Matrix box_plus;//矩阵加的结果 Matrix box_cut;//矩阵减的结果 void Matrix::readMatrix(string fileName) { ifstream ifile(fileName.c_str(),ios::in);/*声明一个输入句柄,打开fileName 所指文件。 接下来就可以通过 ifile>>***来读取 1.txt 中的内容了*/ double tmp; string line; vector row;//vector 容器,相当于一个数组 while(getline(ifile,line)) { istringstream istr(line); while(istr>>tmp) { row.push_back(tmp);//在 row 尾部插入读入的数据 } this->col = row.size(); _mat.push_back(row); row.clear(); istr.clear(); line.clear(); } this->row = _mat.size();//这里的row 不是 vector 变量,是 matrix 中的row ifile.close(); } void Matrix::showMatrix() { cout<<"矩阵:"<