在函数中返回向量后清除内存

POD*_*POD 2 c++ memory-management copy function vector

我有一个处理和存储大量数据的函数,然后它将结果作为类的向量返回.存储在此函数中的数据量非常大,我希望在完成其工作后清除该函数的存储内存.是否有必要这样做(功能是否自动清除内存)还是应该通过某些功能清除内存?

更新:

vector<customers> process(char* const *filename, vector<int> ID)
{
    vector<customers> list_of_customers;
    (perform some actions)
    return list_of_customers;
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*som 5

函数内部定义的变量将在函数范围的末尾自动释放.还将调用任何对象的析构函数,这将释放由这些对象分配的任何内存(如果对象编码正确).这种对象的一个​​例子是a std::vector.

您自己分配的任何内容都new必须具有相应delete的释放存储空间.尽量避免做自己的分配并使用RAII,即容器或智能指针.

  • 但要注意,如果你的向量是std :: vector <Thing*>,向量不会自动返回指向的所有Thing*. (2认同)