C++ 很急很急啊 程序给好了,加注释就行,拜托了~
使用STL模板中的list对象,定义了一个对象来表示多项式的因子,然后用list完成合并,得到合并后的多项式。以下是部分程序,请给每一句都加注释,拜托了~voidComb...
使用STL模板中的list对象,定义了一个对象来表示多项式的因子,然后用list完成合并,得到合并后的多项式。以下是部分程序,请给每一句都加注释,拜托了~
void Combine::printlist() // 按低位->高位的形式输出list内容
{
list<int>::iterator it = lis.begin();
int c = 0;
for(;it!=lis.end();it++){
if(c == 0)
cout<<*it<<ch<<"^"<<c++;
else
cout<<" + "<<*it<<ch<<"^"<<c++;
}
cout<<endl;
}
Combine pluslist(Combine &x1,Combine &x2)
{ list<int> lse = x1.lis;
list<int> rse = x2.lis;
typedef list<int>::iterator p_iter;
list<int>temp;// 存储和值
int lenl = lse.size();
int lenr = rse.size();
// 若rse比lse长,先把lse长度求和到temp,然后把rse剩下的内容赋值给temp
if(lenl < lenr){
p_iter rit = rse.begin();
for(p_iter lit = lse.begin();lit != lse.end();lit++)
{
temp.push_back(*lit + *rit);
rit++;
}
for(;rit != rse.end();rit++)
temp.push_back(*rit);
}
// 若lse比rse长,先把rse长度求和到temp,然后把lse剩下的内容赋值给temp
else{p_iter lit = lse.begin();
for(p_iter rit = rse.begin();rit != rse.end();rit++)
{ temp.push_back(*lit + *rit);
lit++;}
for(;lit != lse.end();lit++)
temp.push_back(*lit);}
return;} 展开
void Combine::printlist() // 按低位->高位的形式输出list内容
{
list<int>::iterator it = lis.begin();
int c = 0;
for(;it!=lis.end();it++){
if(c == 0)
cout<<*it<<ch<<"^"<<c++;
else
cout<<" + "<<*it<<ch<<"^"<<c++;
}
cout<<endl;
}
Combine pluslist(Combine &x1,Combine &x2)
{ list<int> lse = x1.lis;
list<int> rse = x2.lis;
typedef list<int>::iterator p_iter;
list<int>temp;// 存储和值
int lenl = lse.size();
int lenr = rse.size();
// 若rse比lse长,先把lse长度求和到temp,然后把rse剩下的内容赋值给temp
if(lenl < lenr){
p_iter rit = rse.begin();
for(p_iter lit = lse.begin();lit != lse.end();lit++)
{
temp.push_back(*lit + *rit);
rit++;
}
for(;rit != rse.end();rit++)
temp.push_back(*rit);
}
// 若lse比rse长,先把rse长度求和到temp,然后把lse剩下的内容赋值给temp
else{p_iter lit = lse.begin();
for(p_iter rit = rse.begin();rit != rse.end();rit++)
{ temp.push_back(*lit + *rit);
lit++;}
for(;lit != lse.end();lit++)
temp.push_back(*lit);}
return;} 展开
1个回答
展开全部
void Combine::printlist() // 按低位->高位的形式输出list内容
{
list<int>::iterator it = lis.begin();// 元素起始指针
int c = 0;// 设置c=0
for(;it!=lis.end();it++){// 输出每个元素(遍历到最后)
if(c == 0)// 第一次输出时
cout<<*it<<ch<<"^"<<c++; // ch应该是全局变量
else // 非第一次输出,区别在于会多输出一个"+"
cout<<" + "<<*it<<ch<<"^"<<c++;
}
cout<<endl;// 换行
}
Combine pluslist(Combine &x1,Combine &x2)
{ list<int> lse = x1.lis; // 定义临时变量lse,赋值x1.lis(left side element)
list<int> rse = x2.lis; // 定义临时变量rse,赋值x2.lis(right side element)
typedef list<int>::iterator p_iter;// 名字重定义
list<int>temp;// 存储和值
int lenl = lse.size();
int lenr = rse.size();
// 若rse比lse长,先把lse长度求和到temp,然后把rse剩下的内容赋值给temp
if(lenl < lenr){// 左边的list比右边的list短
p_iter rit = rse.begin();
for(p_iter lit = lse.begin();lit != lse.end();lit++)// 在左边的长度下把两者的和值放入temp list中,
{
temp.push_back(*lit + *rit);
rit++;
}
for(;rit != rse.end();rit++)// 把right list长出的一部分也放入temp list中
temp.push_back(*rit);
}
// 若lse比rse长,先把rse长度求和到temp,然后把lse剩下的内容赋值给temp
else{p_iter lit = lse.begin();
for(p_iter rit = rse.begin();rit != rse.end();rit++)// 直到rse的end,把lse和rse的元素对应相加添加到temp中
{ temp.push_back(*lit + *rit);
lit++;}
for(;lit != lse.end();lit++)// 把lse长出的一部分也放入temp list中。
temp.push_back(*lit);}
return;}// 返回空
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询