初期化されていないリストを受け入れるコンストラクターが必要な Matrix クラスがあります。コンストラクターは値を取得し、それらを 2D ベクトル (行列) に配置する必要があります。
これは私の 2D ベクトルです。
vector<vector<double>> d_matrix;
これは私のコンストラクタです。
Matrix::Matrix(initializer_list<initializer_list<int>> list)
{
d_row = list.size();
d_col = (*list.begin()).size();
initMatrix();
for (size_t r = 0; r < d_row; ++r)
{
for (size_t c = 0; c < d_col; ++c)
{
/* I need to do something here */
//d_matrix[r][c] = list.begin() + r) + c);
//cout << (*list.begin()).;
}
}
}
これは、初期値から始めるための私の init Matrix 関数です。
void Matrix::initMatrix()
{
d_matrix.resize(d_col, vector<double>(d_row, 0));
}
これが私のコンストラクターの呼び出し方です。
Matrix m({ {1, 2, 3},
{3, 4, 2} }
);
リストの次元 (d_row と d_col) を取得することができましたが、リストから値を抽出しようとして立ち往生し、挿入も試してみると、イテレータの開始と終了の両方が行われました。初期化されていないリスト クラスには、2 つの iterator メソッドと 1 つの size メソッドしかないようです。名前空間stdを使用しています。
問題は、初期化されていないリストから値を取得し、それらを d_matrix と呼ぶ 2D ベクトルに格納する方法です。