c++ - 包含引用另一个 vector 内容的 vector 的对象

标签 c++ algorithm c++11 vector

我的问题很难解释,所以我将以场景本身为例: 我有一个模板化的 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/

相关文章:

c++ - 从 jvm.dll 获取 FindClass 函数指针

c++ - 带有第三个参数(即比较器函数)的重载 sort() 如何工作?

algorithm - 确定一个符号是否是第 i 个组合 nCr 的一部分

java - 如何在 NN 搜索的前缀树中查找最相似的位 vector ?

c++ - 启用可重写 init 函数的优雅方式

C++ SFINAE 运算符/函数结果类型检查

c++ - 求教在Qt4中使用QGLWidget

algorithm - 替换 `find_if`函数

java - 如何检查重复的数字并按照读取的相同顺序打印出读取的输入数字(不包括所有重复项。)

C++:将派生类保存在基类的shared_ptr中