矢量的基本问题 [英] basic question for vector

查看:61
本文介绍了矢量的基本问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个向量,我保存指针。


函数()

{

std :: vector< ; CMyData * GT; vpMyData;

vpMyData.push_back(new CMyData(0));

vpMyData.push_back(new CMyData(1));

vpMyData。 push_back(new CMyData(2));

vpMyData.push_back(new CMyData(3));


// ???????? ???????需要??????????? //

删除vpMyData [0];

删除vpMyData [1];

删除vpMyData [2];

删除vpMyData [3];


}


我应该删除所有内存在我离开这个功能之前?

I have a vector which I save the pointer.

function()
{
std::vector <CMyData*> vpMyData;
vpMyData.push_back(new CMyData(0));
vpMyData.push_back(new CMyData(1));
vpMyData.push_back(new CMyData(2));
vpMyData.push_back(new CMyData(3));

//??????????????? Required ???????????//
delete vpMyData[0];
delete vpMyData[1];
delete vpMyData[2];
delete vpMyData[3];

}

Should I delete all memory before I leave the function?

推荐答案

kathy写道:
kathy wrote:
我有一个矢量我保存指针。

函数()


你的函数缺少一个返回类型。

{
std :: vector< CMyData *> vpMyData;
vpMyData.push_back(new CMyData(0));
vpMyData.push_back(new CMyData(1));
vpMyData.push_back(new CMyData(2));
vpMyData.push_back(new CMyData(3));

// ???????????????需要??????????? //删除vpMyData [0];
删除vpMyData [1];
删除vpMyData [2];
删除vpMyData [3];



我应该在离开函数之前删除所有内存吗?
I have a vector which I save the pointer.

function()
Your function is missing a return type.
{
std::vector <CMyData*> vpMyData;
vpMyData.push_back(new CMyData(0));
vpMyData.push_back(new CMyData(1));
vpMyData.push_back(new CMyData(2));
vpMyData.push_back(new CMyData(3));

//??????????????? Required ???????????//
delete vpMyData[0];
delete vpMyData[1];
delete vpMyData[2];
delete vpMyData[3];

}

Should I delete all memory before I leave the function?




是的。否则你有内存泄漏。顺便说一句:你也可以简单地存储

对象而不是指针。然后内存自动释放。



Yes. Otherwise you have a memory leak. Btw: You can also simply store the
objects instead of pointers. Then the memory is released automatically.


kathy写道:
我有一个向量,我保存指针。

函数()
{st / :: std :: vector< CMyData *> vpMyData;
vpMyData.push_back(new CMyData(0));
vpMyData.push_back(new CMyData(1));
vpMyData.push_back(new CMyData(2));
vpMyData.push_back(new CMyData(3));

// ???????????????需要??????????? //删除vpMyData [0];
删除vpMyData [1];
删除vpMyData [2];
删除vpMyData [3];



我应该在离开函数之前删除所有内存吗?
I have a vector which I save the pointer.

function()
{
std::vector <CMyData*> vpMyData;
vpMyData.push_back(new CMyData(0));
vpMyData.push_back(new CMyData(1));
vpMyData.push_back(new CMyData(2));
vpMyData.push_back(new CMyData(3));

//??????????????? Required ???????????//
delete vpMyData[0];
delete vpMyData[1];
delete vpMyData[2];
delete vpMyData[3];

}

Should I delete all memory before I leave the function?




每个对象由new运算符动态分配必须通过delete运算符取消分配

。 std :: vector没有任何知识

区分存储对象时和存储指针对象时的情况。


干杯

-

Mateusz ?? oskot
http: //mateusz.loskot.net


您可以创建一个继承自vector的新类,并且

提供了一个析构函数清理所有指针。或者不要使用

指针。

alternately you could create a new class that inherits from vector, and
provides a destructor that cleans up all the pointers. or don''t use
pointers.


这篇关于矢量的基本问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆