C++中Vector/Map/List中尽量使用指针,避免直接保存对象

  昨天改了个模型,发现跟踪出问题了。吾当时猜测了一下原因,做了修改,结果还是不成功。

  今天跟别人一齐查,结论是:改的思路是对的,问题在于,修改的是复制实例,不是原实例。代码如下:

    //Vector<BBoxInfo> detected;
    int object_num = detected->numObjects;
    for (int i=0; i<object_num; i++)
    {
        BBoxInfo info = detected->object[i];
        info.label = DECTED_CLASS_PERSON;
    }

  正确代码是:

    int object_num = detected->numObjects;
    for (int i=0; i<object_num; i++)
    {
     	detected->object[i].label = DECTED_CLASS_PERSON;
    }

  最早使用这个Vector的时候,吾亦觉得可能有问题。因为一直没有涉及到修改,所以一直没问题。这次一修改,终于出错了。所以吾虽然不喜欢使用指针,更避免使用对象。使用对象一个是复制了实例,另外一个就是不小心就忘记了。

  使用指针,自然就会产生释放问题,释放就有一个释放时间,早了不行,晚了就忘记了。这……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳鲲鹏

能给阁下一点帮助,非常荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值