我是新的cpp.I定義了一個向量與此代碼,並在最後,我想完全擦除它。C++,刪除向量
#include <string>
#include <stdio.h>
#include <vector>
#include <iostream>
using namespace std;
struct MCLASS
{
string *a = new string();
string *b = new string();
MCLASS(string ax,string bx)
{
a = new string(ax);
b = new string(bx);
}
~MCLASS()
{
delete a;
delete b;
}
};
vector<MCLASS*> *vc = new vector<MCLASS*>;
int main()
{
for (int i = 0 ; i <= 1000000 ; i++)
vc->push_back(new MCLASS("EHEM","UHUM"));
for (int i = 0 ; i <= 1000000 ; i++)
delete vc->at(i);
vc->clear();
delete vc;
cout<<"Deleted";
cin.get();
return 0;
}
但有一個疑難問題無法抹去它completely.I試圖刪除向量,向量明確項目的每個項目,並刪除它。但是當我檢查這個應用程序的內存使用,它使用約130MB.Please向我解釋做什麼。謝謝!
您需要閱讀操作系統的內存模型。總之:大部分時間競技場並沒有減少到有更好的表現。 – VladimirS
您不應該使用所有這些指針...... – Jarod42
您可以通過不使用* raw指針*並聲明不帶'new'的變量來減輕這些指針問題。如果你*必須*使用指針使用*智能指針*。 –