我在C++中使用std :: forward_list來存儲動態分配的元素。我想知道什麼是刪除列表中的元素或釋放內存的正確方法。如何刪除存儲在std :: forward_list中的動態元素
std::forward_list<int> integerList;
for (int i = 0; i < 5; i++) {
int* intPtr = new int(i);
integerList.push_front(*intPtr);
}
這段代碼執行後,我認爲應該發生的是forward_list包含一個動態分配的int。現在,我將如何正確調用刪除它呢?我注意到forward_list容器有一個clear()函數,但是它是否會調用每個節點中所有元素的delete?
'我在C++中使用std :: forward_list來存儲動態分配的元素。「嗯不,你根本就沒有這樣做。您將存儲這些元素的*副本並泄漏原始文件。 – Borgleader
@Borgleader好抓。我錯過了。 –
謝謝你們,這很有道理。那麼刪除原件的正確方法是什麼,並確保我不會泄漏它?我應該添加刪除intPtr;在for循環的最後一行? – AWoodman