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

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


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

目录
相关文章
|
4天前
|
C++ 数据格式
LabVIEW传递接收C/C++DLL指针
LabVIEW传递接收C/C++DLL指针
12 1
|
3天前
|
C++ 编译器
|
5天前
|
存储 安全 程序员
C++:智能指针
C++:智能指针
19 5
|
5天前
|
存储 编译器 C++
C++:map&set 对红黑树的封装
C++:map&set 对红黑树的封装
9 1
|
5天前
|
存储 C++ 容器
C++:STL - set & map
C++:STL - set & map
13 4
|
5天前
|
调度 C++ 容器
【C++】手搓 list 容器
本文我们实现了STL库中重要的list 的模拟实现,其中最重要莫过于迭代器的封装类的书写,这是前所未有的操作(对于我来说,我是第一次使用这种结构)。通过list 的模拟实现也帮我们巩固了类与对象的知识,也强化了指针操作的思路。欢迎大家讨论分析。
12 1
|
5天前
|
编译器 C++ Windows
【C++】vector问题解决(非法的间接寻址,迭代器失效 , memcpy拷贝问题)
不使用memcpy函数不就可以了,然后我们使用简单粗暴的赋值拷贝,这样就不会发生浅拷贝问题了!!!
16 1
|
6天前
|
存储 安全 C++
深入理解C++中的指针与引用
深入理解C++中的指针与引用
8 0
|
6天前
|
Java C++ Python
【C++从练气到飞升】06---重识类和对象(二)
【C++从练气到飞升】06---重识类和对象(二)
|
6天前
|
编译器 C++
【C++从练气到飞升】06---重识类和对象(一)
【C++从练气到飞升】06---重识类和对象(一)