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>存储实际的点,而不是指向它的指针. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |