矩阵构造函数花括号

时间:2017-10-28 15:01:38

标签: c++ matrix

我正在为我的目的开发一个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;   
}

提前感谢您的宝贵支持

0 个答案:

没有答案