包含引用另一个矢量内容的矢量的对象

An object containing a vector referring to another vector's content

本文关键字:引用 对象 包含 另一个      更新时间:2023-10-16

我的问题很难解释,所以我以场景本身为例:我有一个模板化的矩阵类,它使用 std::vector 作为存储。

我正在寻找的是有一个"行"或"块"方法,能够返回另一个较小大小的矩阵,但引用其父级。

使用这段代码:

Matrix<float> mat(2, 2);
// Filling the matrix
Matrix<float> row = mat.row(0); // returns a 1x2 matrix(row vector)
row[1] = 10; // Here I modify the row, which reflects the modifications in mat
std::cout << mat(0, 1); // prints 10

我一直在考虑多种解决方案,但它们都有一些不可忽视的缺点。您对如何实现这一目标有任何想法吗?谢谢!

编辑 1 :我忘了精确,行为应该是递归的,比如得到另一个块的块,等等。

即使正确实现,我认为你的行为也是违反直觉的。

创建一个单独的MatrixRef类,用作对Matrix(子集)的引用。这也应该使实施相当简单。