我有一個我不需要的指針列表。要刪除所有的人,我可以正常循環列表:刪除一個std :: list的內容
for (T* ptr: mylist) {
delete ptr;
}
,或者直到列表爲空我可以刪除第一個或最後一個元素:
while (!mylist.empty()) {
delete mylist.front(); //or mylist.back()
mylist.pop_front(); //or mylist.pop_back()
}
什麼是首選的方式,既爲性能和清晰度?
'std :: list :: clear'對我來說是全新的。好的建議然而。 – user6245072
請注意,'clear'將從列表中刪除所有元素。刪除後的智能指針也將釋放他們擁有的內存。但通常的指針不會。所以這種方法只適用於智能指針。無論如何,現在手動刪除對象被認爲是不好的做法,因爲它太容易出錯。 –
很高興知道最後一點。謝謝你的一切。 – user6245072