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