加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 指针矢量:需要一些澄清

发布时间:2020-12-16 09:46:52 所属栏目:百科 来源:网络整理
导读:我在这个论坛上已经阅读了很多关于指针向量的内容,但是很难理解删除存储在向量中的指针的想法.以下是我的查询: 假设我动态创建一个对象数组 CPoint* dynamic_array;dynamic_array = new CPoint[30714]; 我现在必须通过指针向量在另一个类的对象中使用这些值
我在这个论坛上已经阅读了很多关于指针向量的内容,但是很难理解删除存储在向量中的指针的想法.以下是我的查询:

假设我动态创建一个对象数组

CPoint* dynamic_array;
dynamic_array = new CPoint[30714];

我现在必须通过指针向量在另一个类的对象中使用这些值

vector<CPoint*> vector_of_pointers;

然后,我将使用以下内容将dynamic_array的元素划分为另一个类的对象

Class B{
    vector<CPoint*> vector_of_pointers;
public:
    void function(CPoint* a){
        if (some condition){
            vector_of_pointers.push_back(a);
        }
};

其中a将始终是dynamic_array中对象的指针

然后我计划在对象的需要结束后删除最初创建的dynamic_array.

delete[] dynamic_array;

是否在执行此操作后删除向量中的每个指针?如果有必要,我可以在B类的析构函数中进行吗?

很抱歉,如果这是一个简单或愚蠢的问题,但我是c的新手,并且我的应用程序需要使用容器.

解决方法

回答你的原始问题:不,你不需要删除单个CPoint对象(实际上你不能).

但我相信你最好使用矢量< CPoint>存储实际的点,而不是指向它的指针.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读