bigvalue_t result;
result.assign(left.size() + right.size(), 0);
int carry = 0;
for(size_t i = 0; i < left.size(); i++) {
carry = 0;
for(size_t j = 0; j < right.size(); j++) {
int sum = result[i+j] + (left[i]*right[j]) + carry;
result[i+j] = sum%10;
carry = sum/10;
}
result[i+right.size()] = carry;
}
return result;
这里我使用assign来分配结果的大小,并且结果正常传回。 当我使用result.reserve(left.size()+ right.size())时,函数在两个for循环内正常运行。不知何故,当我使用print.size()打印出来时,它始终为0.是否保留不分配任何空间?指定矢量大小vs保留矢量大小
最后一个问题是一个非限制性问题。是的,'reserve'分配空间,但不会在容器中创建元素。 –
当我们不知道大多数变量的类型时,尝试跟随代码有点难。 – PlasmaHH