|
|
1
1
我将完全重写这个答案,现在它更多的是一个答案,而不是一个建议。 同样,您遇到的问题是:
这是您正在使用的嵌套for循环构造的内部循环。在这里,你运行整个向量。当j超过size2时,您不会退出循环,而是将(i+1)作为tMatrix(i1,i2)的第一个索引。然后对于i2,从j中减去size2。 两个问题:一旦你的j超过size2,你将永远重写为值为1的矩阵i1索引。 然后,如果j大于2*size2,您将尝试写出绑定标记。例如,如果vecor包含20个元素,并且您有一个7*7矩阵,那么当vectorIndex变为8时,您将立即写入vectorIndex-7。[请注意,您的<=tMatrix.size2()也是错误的,应仅为<)。这一直有效,直到vectorIndex为14或更大,如14-7=7或更大->超出范围。 第二个问题是,外部for循环仍然会进行迭代,并为每个i值调用整个过程。最后,您将达到允许的最大i值,在内部循环中,您将尝试访问(i+1)。这也会给你一个超出界限的期望。 我建议这样做作为解决方案:
这是未经测试的,并按列填充向量。你应该能够自己为byRow做些什么! |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |