【发布时间】:2014-05-07 23:09:26
【问题描述】:
如果我有这样的事情:
for(MyClass* m : a_container){
//
//Do something with m
//
//delete m; ?
}
//delete m; ?
我是否需要在每次循环迭代中删除m,还是因为重复使用相同的指针而只在最后删除?
注意:我知道我应该使用 shared_ptrs,但这是出于特定原因。
【问题讨论】:
-
关于
shared_ptrs,我认为有太多人会自动选择shared_ptr,即使共享语义是不必要的。shared_ptr确实比unique_ptr有更多开销,例如,由于同步等原因。请确保在使用shared_ptr之前确实需要共享语义。如果没有,请使用unique_ptr。 -
这个问题很可笑——没有办法回答它(-1)
-
@DieterLücking 下面的人设法回答得很好