我的想法是在每次迭代后摆脱我在函数中使用的所有指针。
我的情况:我正在使用一个计算数百万次值的循环。但是在每次迭代(i++)之后,我想释放它们而不是在即将进行相同迭代时用以前的迭代覆盖它们,以免出现一些问题。
有没有办法在几行中释放我正在使用的所有指针?
我的想法是在每次迭代后摆脱我在函数中使用的所有指针。
我的情况:我正在使用一个计算数百万次值的循环。但是在每次迭代(i++)之后,我想释放它们而不是在即将进行相同迭代时用以前的迭代覆盖它们,以免出现一些问题。
有没有办法在几行中释放我正在使用的所有指针?
使用智能指针分配您的对象,它们会自动释放。
for (int i(0); i < 10000000; ++i)
{
std::unique_ptr<Foo> pFoo(new Foo());
std::unique_ptr<Bar> pBar(new Bar(pFoo.get()));
pBar->DoSomething();
}
离开循环范围时,std::unique_ptr
-object 会自动销毁,因为它们是在堆栈上分配的。他们的析构函数调用delete
他们管理的对象。