Saf*_*ari 3 c++ vector aggregation dealloc
你好我有这个问题:我想有一个矢量作为类成员.这对我来说可能更容易,我为此道歉.
std::vector<int> *myVector;还是std::vector<int> myVector?它是否正确?
if(myCondition)
{
if(!myVector) //is this correct?
myVector = new std::vector<int>(); //is this correct? on this i have a error
}
Run Code Online (Sandbox Code Playgroud)
只需使用自动分配:将其声明为如下所示的成员:
class YourClass
{
std::vector<int> myVector;
// ...
};
Run Code Online (Sandbox Code Playgroud)
在运行任何构造函数之前自动构造数组,并在释放对象时自动销毁该数组,您不需要关心它(同样,默认的复制构造函数和赋值运算符将自动处理正常复制).
相反,如果您只想在特定条件之后创建数组,则必须使用(智能)指针和动态分配,但恕我直言,这非常麻烦(特别是因为您必须得到正确的"三巨头" - 复制构造函数,赋值运算符,析构函数); 您可以简单地使用自动分配来分配向量,并使用单独的标志将数组标记为未初始化,或者仅检查其大小是否为0.