私は C++ の初心者で、STL コンテナーのみを使用してマトリックスを作成する割り当てを受けました。ベクトル (列) のベクトル (行) を使用しました。私が抱えている問題は、「書き込み」操作にあります。これには、反復子ベースの実装しか使用できません。問題は、非常に単純なことです。何も書き込まないのです。
さまざまな値で満たされたマトリックスでテストしましたが、反復子は正確に正しい場所に配置されますが、値は変更されません。
これが私のコードです:
void write(matrix mat, int row, int col, int input)
{
assert(row>=0 && col>=0);
assert(row<=mat.R && col<=mat.C);
//I set up the iterators.
vector<vector<int> >::iterator rowit;
vector<int>::iterator colit;
rowit = mat.rows.begin();
//I go to the row.
for(int i = 0; i<row-1; ++i)
{
++rowit;
}
colit = rowit->begin();
//I go to the column.
for(int j = 0; j<col-1; ++j)
{
++colit;
}
*colit = input; //Does nothing.
}
私は何を見落としていますか?ありがとう。