我的问题很难解释,所以我将以场景本身为例: 我有一个模板化的 Matrix 类,它使用 std::vector 作为存储。
我正在寻找的是有一个“行”或“ block ”方法,能够返回另一个尺寸较小的矩阵,但指的是它的父矩阵。
使用这段代码:
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: 我忘记说得更准确了,这个行为应该是递归的,比如获取另一个 block 的 block ,等等。
最佳答案
即使实现正确,我认为您的行为也是违反直觉的。
制作一个单独的 MatrixRef
类作为对 Matrix
(的子集)的引用。这也应该使实现相当简单。
关于c++ - 包含引用另一个 vector 内容的 vector 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29952650/