如果我有这样的话:
for(MyClass* m : a_container){
//
//Do something with m
//
//delete m; ?
}
//delete m; ?
我是否需要在每次循环迭代中删除m
,或者只是在结尾处删除,因为正在重复使用相同的指针?
注意:我知道我应该使用shared_ptr
,但这是出于特定原因。
答案 0 :(得分:1)
问题不在于是否应删除m
,而是指向的内容应该是什么。如果要迭代其元素为指针且需要在该时间点删除的容器,则可以执行delete m;
。 m
本身不需要在堆栈上创建时删除,在创建实际指针时没有使用new
,因此无需调用delete
。 / p>