C++ PUSH_BACK的用法

CTTIntCTTInt::BitMultiBigInt(constCTTInt&left,intright)const//有符号数相乘{intinc=0;CTTIntr... CTTInt CTTInt::BitMultiBigInt(const CTTInt & left,int right) const //有符号数相乘
{
int inc=0;
CTTInt ret;
for(int i=0;i<left.m_data.size();i++)
ret.m_data.push_back( BitMultiBit(left.m_data[i],right,inc));
if (inc>0)
ret.m_data.push_back(inc);
return ret;
}

m_data是用的迭代器int..
数据都是对的,但是不管怎么后面都多个0,比如1*1,调试的时候查看了ret是<1,0>这样,最后输出就是10.我表示纠结,不知道怎么处理最后那个0.
CTTINT 定义的一个类~整个程序思路是使用万进制实现大整数加减乘除
里面定义的两个std::vector<int> m_data; //数据
bool m_isPositive; //符号

BitMultiBigInt没有多个重载
下面那个是BitMultiBigbit...

int CTTInt::BitMultiBit(int left , int right , int inc) const //有符号数按位相乘
{
int ret = left * right + inc;
inc = 0;
if(ret>=DECIMAL_BIT_MAX)
{
inc = ret / DECIMAL_BIT_MAX;
ret = ret % DECIMAL_BIT_MAX;
}
return ret;
}
展开
 我来答
天云小店
推荐于2018-03-01 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:782万
展开全部

push_back是vector的一个方法,表示将一个元素存储到容器的末尾。


具体用法可以参考如下程序段:

vector< int > line   // 定义一个容器line(可以简单理解为一个数组,只是数组大小可变)
for(int i = 0 ; i < 10 ; i ++)  
{  
    line.push_back(i);  // 将i的值依次存放到容器line的末尾,即对容器line进行初始赋值
}
鱼嘟的2857
2011-12-15 · TA获得超过6.6万个赞
知道大有可为答主
回答量:5.4万
采纳率:1%
帮助的人:7395万
展开全部
你的提问不大对头。这个和push_back根本没关系。是你算法或别的方面的问题。你又没给出其它代码,比如CTTInt是什么东西,定义是什么?比如BitMultiBigInt这个函数你是否有多个重载?我看到你内部使用了三参数的BitMultiBigInt,但你只给了两参数版本的定义。所以缺少信息别人没法帮你看。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式