Matrix(row,col)= value

Ste*_*ven 0 c++ matrix

double Matrix::operator()(unsigned int a, unsigned int b)
{
    return m[a*rows+b];
}
Run Code Online (Sandbox Code Playgroud)

我现在有以上用于访问存储在矩阵中的值,但是我希望能够在该位置设置值.那可能吗?

tgm*_*ath 5

如何返回引用:

double& Matrix::operator()(unsigned int a, unsigned int b)
{
    return m[a*rows+b];
}
Run Code Online (Sandbox Code Playgroud)

然后您可以设置相应元素的值.

  • 你还应该有一个`const`重载(返回一个值或`const`引用),以便访问`const`矩阵的元素. (2认同)
  • @tgmath - operator []只有一个参数存在问题.您必须使用另一个operator []添加某种代理类以获取矩阵[i] [j]. (2认同)
  • @Bo Persson:在这种情况下,"代理类"只是一个双* - `返回m + a*行;`(是的,我知道这可以防止边界检查等,但OP不会做那些反正) (2认同)