最近做了一道bfs算法的程序题
输入测试数据后卡在运行框中 然后会产生一个错误信息
第一次见到这样的报错于是记录一下解决过程
terminate called after throwing an instance of 'std::bad_alloc’
百度上说是数据量太大 导致内存爆掉
仔细检查代码后发现bfs()函数中数据的重复处理导致相同的数据重复进入队列 处理量过大从而内存爆掉
加上这句 data[next.x][next.y]=’#’;
加上处理完成标志 避免重复处理 即可解决这个问题
报错信息 terminate called after throwing an instance of ‘std::cad_alloc‘ what():std::bad_alloc
最新推荐文章于 2024-08-25 14:01:43 发布