矢量的基本问题 [英] basic question for vector
问题描述
我有一个向量,我保存指针。
函数()
{
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屋!