我正在为我的目的开发一个Matrix类,我会问一下构造函数我想构造矩阵并使用大括号来初始化它:
Matrix<double> M = {{1,2,3,},{4,5,6}};
我对构造函数有疑问..这里是我编写的代码!我会知道是否有一些更优雅(或通常更好)的方式:
这里是只有这个构造函数的可用类..以及一个可用的主函数
# include <iostream>
# include <initializer_list>
# include <iterator>
using namespace std;
template <typename data_type>
class Matrix {
public:
constexpr Matrix(std::initializer_list<std::initializer_list<data_type>> rows) {
size_t row = rows.size() ;
auto il = *(rows.begin());
size_t col = il.size();
cout << row << ' ' << col << endl;
size_t i=0;
size_t n = row * col;
cout << n << endl;;
data = new data_type[ n ];
i=0;
for(auto& row : rows )
for(auto & r : row){
data[i] = r ;
i++;
}
for (i=0; i < n ; i++ )
cout << data[i] << endl;
}
private:
data_type* data;
};
int main(){
Matrix<int> mat = {{1,2,3}, {4,5,6}};
return 0;
}
提前感谢您的宝贵支持