难以找到2D vector 的总和。这样看起来还好吗?
int sumOfElements(vector<iniMatrix> &theBlocks)
{
int theSum = 0;
for(unsigned i=0; (i < theBlocks.size()); i++)
{
for(unsigned j=0; (j < theBlocks[i].size()); j++)
{
theSum +=theBlocks[i][j];
}
}
return theSum;
}
它返回一个负数,但是,它应该返回一个正数。
希望有人可以帮助:)
最佳答案
从抽象的 Angular 来看,该代码看起来正确,但是您可能正在溢出theSum
。您可以尝试将theSum
类型设置为double
,以查看所获得的值,以帮助整理出正确的整数类型以供使用。
double sumOfElements(vector<iniMatrix> &theBlocks)
{
double theSum = 0;
/* ... */
return theSum;
}
当观察返回的值时,可以看到它是否适合
int
,或者是否需要使用更宽的long
或long long
类型。如果矩阵中的所有值均为正,则应考虑使用无符号整数类型之一。这会使您的允许值范围加倍。