c++debug日记——invalid use of destructor‘XXX‘ as a type

1.类的析构函数的外实现出错而产生了如下报错

~queue::queue(){if(p) delete []p;}

正确写法:

queue::~queue(){if(p) delete []p;}

2.再if判断是否成立时 若某个条件不成立,则&&之后的程序将不再运行。所以应将判断数组是否越界的判断条件放在第一个。

        if((q.rol-1>=0)&&(up.dis>q.dis+1||up.dis==m*n)&&up.c!='X'){
            up.dis=q.dis+1;
            que.enQueue(up);
        }
        if((q.col+1<m)&&(right.dis>q.dis+1||right.dis==m*n)&&right.c!='X'){
            right.dis=q.dis+1;
            que.enQueue(right);
        }
        if((q.rol+1<n)&&(down.dis>q.dis+1||down.dis==m*n)&&down.c!='X'){
            down.dis=q.dis+1;
            que.enQueue(down);
        }
        if((q.col-1>=0)&&(left.dis>q.dis+1||left.dis==m*n)&&left.c!='X'){
            left.dis=q.dis+1;
            que.enQueue(left);
        }

PS:本题写的是一个简单的队列解决迷宫问题,属于是广度优先搜索。如果将队列改为栈,则为深度优先搜索~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值