C++ の初心者である私は、自分のMatrix
クラスでスポット内の値への参照を返す関数を作成するように依頼されました(i,j)
。
割り当ての一部として、クラスはマトリックスを表すarray
ofを保持します。std::list
list <value_type> * m_val;
これはあまり意味がありませんが、まあ、それが課題です。これで作業を開始するように言われました:
template <class E>
inline E& Matrix<E>::operator() (unsigned i, unsigned j) {
}
これは私が試したものです:
template <class E>
inline E& Matrix<E>::operator() (unsigned i, unsigned j) {
list<value_type> row = m_val[i]; // Get the row
typename list< E >::iterator it = row.begin(); // Iterator at beginning of row
for (int x = 0; x < j; ++x) {
++it; // For each column, I increase the iterator until I reach the desired spot
}
return *it; // I'm confused here. I got my iterator in the right spot, but I am not sure how to return a reference to its value.
}
しかし、私が知る限り、これは参照ではなく値を返します。私が達成したいことは本質的に
myMatrix(2,3) = 50; // Now the value at 2,3 is 50.