C++ 新手,我被要求在我的Matrix
类中创建一个函数,该函数返回对 spot 中值的引用(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.