vector<int> vect;
int *int_ptr = new int(10);
vect.push_back(*int_ptr);
我認爲每個「新」需要後面跟着一個「刪除」,但是clear()方法是否清理這個內存?C++內存分配問題涉及向量
什麼做同樣的事情的這個方法:
vector<int> vect;
int int_var = 10;
vect.push_back(int_var);
從我的理解,明確()調用析構函數的變量,但在這個例子中都vect.push_back()方法上推的對象矢量,而不是一個指針。那麼使用int指針的第一個例子需要clear()來清除內存?
當你說它會處理內存本身,你的意思是我調用vector.clear()後? – TheFuzz 2010-05-07 20:43:23
當矢量被銷燬時,內存將被恢復。 clear()實際上不會釋放任何內存;該載體將保留該容量以防需要稍後再次增長。 – 2010-05-07 20:47:48
那麼是什麼阻止了我根本不使用指針,並簡單地創建臨時堆棧變量,然後在需要時將它們推送到向量上?由於某種原因,指針失去了他們的觀點。 – TheFuzz 2010-05-07 21:08:31