2017-06-20 18 views
-2

私はC++を初めて使っていて、行列を正しく設定しようとしています。私のデータは未知数の行を持ちますが、6列あり、私はvector>またはboostマルチ配列パッケージを使うことを考えていました。C++ベクトル<vector <double>> typenameエイリアスを使用して

template<size_t t> 

using Matrix <t> = vector<vector<double>> m(t, vector<double>(6)) 

のようなものを設定することはできますか?これはうまくいかない/適切ではない/アドバイスしませんか?

+0

それ[作品](http://coliru.stacked-crooked.com/場合は、単純にしようとしないのはなぜ6つのアレイ –

+0

のベクトルを作りますa/bc9a9e3295e3dd5b)? –

+0

私はコンパイラがこの構文を非常に気に入らないかもしれないと思います。テンプレートは非常にコンパイル時のものなので、あなたは何も動的にすることはできません。 –

答えて

0

あなたは、次のような何かを行うことができます:

#include <iostream> 
#include <array> 
#include <vector> 

template< typename T, size_t n > 
using Matrix = std::vector< std::array< T, n > >; 

typedef Matrix< double, 6 > SpecificMatrix; 

int main() 
{ 
    SpecificMatrix my_matrix(10); 
    double x = 0; 

    for (auto &a : my_matrix) 
    for (auto &b : a) 
     b = (x += 1.0); 

    std::cout << "My thingy:" << std::endl; 

    for (auto &a : my_matrix) 
    { 
    for (auto &b : a) 
     std::cout << b << " "; 

    std::cout << std::endl; 
    } 

    return 0; 
} 
関連する問題