在我当前的项目中,我有一个 STL Deque 指针。我还有一个方法可以删除这些指针指向的所有对象。我想出了两种不同的方法来实现这一点,但我无法决定哪种方法是首选方法。
方法一。
for (deque<MyType*>::const_iterator it = myDeque.begin(); it != myDeque.end(); ++it)
{
delete *it;
}
myDeque.clear();
方法2。
for (int i = 0; i < myDeque.size(); ++i)
{
delete myDeque[i];
}
myDeque.clear();
这两种方法都应该有效,但哪种方法更受欢迎?方法 1 使用了 STL,但方法 2 更简单。除了代码清洁度之外,还有什么理由为什么应该使用一种方法而不是另一种方法?尽管创建它的开销很小,但在这种情况下使用迭代器有什么好处吗?
注意:这个问题适用于其他 STL 序列容器,而不仅仅是 Deques。