私はもはや必要としないポインタのリストを持っています。それらのすべてを削除するには、私は通常、リストを反復処理することができます。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