C++ 本机:取消对 InnerIterator 的引用
C++ Eigen: dereferencing an InnerIterator
Matrix<T, Dynamic, Dynamic>::InnerIterator
似乎没有使用标准方式 (operator *
) 来取消引用它。
它有一个成员函数value()
。
我很惊讶,因为这不能很好地与第三方算法(如 STL 算法)交互。
为什么不声明 operator *
?更糟糕的是 value()
不是 return 引用,因此您无法更改指向元素的基础值。正确的使用方法是什么?
这是因为在大多数情况下,没有 index()/row()/col()
返回的相应 inner/row/column 索引,单独的值是无用的。在其他情况下,您只关心索引。无论如何,如果需要,您可以轻松编写一个小包装器使其与 STL 兼容。
最后,如果要修改值,有一个valueRef()
方法返回非const引用
Matrix<T, Dynamic, Dynamic>::InnerIterator
似乎没有使用标准方式 (operator *
) 来取消引用它。
它有一个成员函数value()
。
我很惊讶,因为这不能很好地与第三方算法(如 STL 算法)交互。
为什么不声明 operator *
?更糟糕的是 value()
不是 return 引用,因此您无法更改指向元素的基础值。正确的使用方法是什么?
这是因为在大多数情况下,没有 index()/row()/col()
返回的相应 inner/row/column 索引,单独的值是无用的。在其他情况下,您只关心索引。无论如何,如果需要,您可以轻松编写一个小包装器使其与 STL 兼容。
最后,如果要修改值,有一个valueRef()
方法返回非const引用