永发信息网

c++语言 list的使用出错 触发断点

答案:2  悬赏:10  手机版
解决时间 2021-07-29 06:43
#include"iostream"
#include"list"
using namespace std;
bool check(list<int>&lst);
int main()
{
list<int> lst;
lst.push_front(10);
lst.push_front(15);
lst.push_front(18);
check(lst);
return 0;
}
bool check(list<int>&lst) //实现功能;给出一组数 这些数相加减 若能等于1则返回true 否则 返回FALSE
{ //例如:(10,15,18)=18+18+18-10-15-15-15=1返回true;
list<int>::iterator il,i2;int t,min=lst.front(); //递归示例:
for(il=lst.begin ();il!=lst.end();il++) //check(10,15,18)=check(10,15%10,18%10)=check(10,5,8)
{ //=check(10%5,5,8%5)=check(0,5,3)=check(5,3)=check(2,3)=check(2,1)=check(0,1)=check(1)
if(*il<min) //仅剩下一个点且为1返回true;
{
min=*il;i2=il;
} //迭代找到最小值;
}
for(il=lst.begin ();il!=lst.end();il++)
{

if(il!=i2)
{
t=*il%min; //除最小值之外 都赋值为原数%最小值
if(t>0) *il=t; // 并用erase 删除(原数%最小值)=0的点;
else *lst.erase(il);
}
}
for(il=lst.begin ();il!=lst.end();il++) cout<<*il<<" "<<endl;
if(lst.size()==1)
{
if(lst.front()==1) return true; //如果链表中仅有一个点
else return false; // 此点值为1 则返回true
} // 若不为1 则返回false
return check(lst);
}
错误:触发一个断点
#ifdef _DEBUG
_CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Debug_message(const wchar_t *message, const wchar_t *file, unsigned int line)
{ // report error and die
if(::_CrtDbgReportW(_CRT_ASSERT, file, line, NULL, message)==1)
{
::_CrtDbgBreak();
}
}
最佳答案

*lst.erase(il); 这个函数是又返回值的 将返回值再付给il


然后判断这时的il是否已经到end 如果这时已经是end了 那么 你在FOR 对il进行自加操作固然就要出错了



全部回答
程序算法没看懂 18+18+18-10-15-15-15=-1吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
毕业设计 主轴箱设计
桑植县张家界美的装饰设计怎么去啊,谁知道地
火车站举的旗什么意思
超酷的英文铃声有吗?
韩剧我的野蛮女友是什么样的剧情谁能详细介绍
作文 什么什么令我陶醉
急…睡不着咋办?
卫东区平顶山书亦烧仙草在什么地方啊,我要过
恋人们口中说的爱情到底是什么
关于2个字的情侣词,两个最好能连在一起读,
鬼剑士转什么最牛
有没有类似《天空之城》安静的歌
艺术统考后能不能转学到别的省市
为什么瑞星升级老是失败 我家的瑞星是2009版
柘城县商丘名典蛋糕西饼屋地址在哪里啊
推荐资讯
06年夏SUJU演出失败是怎么回事情?
Life is like an ice cream.Enjoy it before
我的超级QQ怎么没了,我换了手机号绑定
哪里有肯普法轻小说卖?
游戏初始化失败,网吧用户请联系网管升级网吧
淇滨区鹤壁民心大药房(龙祥圣府店)哪位知道具
男生烫什么发比较好(不要太张扬的)?
有天下贰的吗 ?上善若水!
问道解除防沉迷了为什么还有提示
喝红糖水是否伤害胃?
QQ华夏黄玉令牌多少钱?
鸣人学仙术查克拉是第几集
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?