0
我要乘其存储为vectors.To两个整数存储我使用乘两个大整数存储为整数载体
std::vector<std::vector<int>> result
在哪里存储部分结果行和最后一行将最终结果存储最终结果。我计算了部分结果行,现在必须添加它们。我已经有了一个大整数加法函数。为了对齐部分结果行,我所做的是在所有部分结果行中追加零(如果需要)附加到第二部分结果行,2 0附加到第三部分结果行等)。然后我添加所有部分结果行并将结果存储在另一行。现在我以类似的方式删除附加的零。
void putzeroesatend(std::vector<std::vector<int>> &something)
{
std::vector<std::vector<int>>::iterator i;
int k=0;
for(i=something.begin();i!=something.end();i++,k++)
{
for(int p=1;p<=k;p++)
(*i).push_back(0);
}
}
void removezeroesatend(std::vector<std::vector<int>> &something)
{
std::vector<std::vector<int>>::iterator i;
int k=0;
for(i=something.begin();i!=something.end()-1;i++,k++)
{
for(int p=1;p<=k;p++)
(*i).pop_back();
}
}
然后在我的计算部分结果后乘功能,我做的
putzeroesatend(result);
std::vector<int> newrow;
result.push_back(newrow);
for(p=result.begin();p!=result.end()-1;p++)
{
result[result.size()-1]=add(result[result.size()-1],*p);
}
removezeroesatend(result);
这是工作,但是这可能是一个更好的解决方案中添加部分结果,而无需追加零以下然后将其删除。
只需创建一个采用未对齐操作数的新增函数。 – 2014-11-24 15:39:22