c++中vector<int>和vector<int*>的用法差別。本站提示廣大學習愛好者:(c++中vector&lt;int&gt;和vector&lt;int*&gt;的用法差別)文章只能為提供參考,不一定能成為您想要的結果。以下是c++中vector&lt;int&gt;和vector&lt;int*&gt;的用法差別正文
在應用STL容器(好比map、list、vector等)的時刻,是用放一個對象照樣放一個對象指針,等於用vector<int>照樣vector<int*>,這裡的vector可以換成其他的容器,int可以換成其他根本類型,也能夠自界說的數據構造或類。
起首,要解釋的是,這兩種方法,怎樣用都可以完成功效,把一組整型數放到容器裡。先看看兩種方法在應用的時刻的差別。
1.vector<int>
vector<int> vecTemp;
for (int i=0; i< 10; i++)
{
vecTemp.push_back(i);
}
這類方法不須要靜態new內存,固然也不消delete。
2.vector<int*>
vector<int*> vecTemp;
for (int i=0; i< 10; i++)
{
int* nTemp = new int;
nTemp = &i;
vecTemp.push_back(i);
}
這類方法采取new,固然也要用delete:
std::vector<int*>::iterator Iter;
for(Iter=vecTemp.begin(); Iter!=vecTemp.end(); Iter++)
{
int* temp = *Iter;
delete temp;
temp = NULL;
}
3.兩種用法的差別:
1)vector<int>不須要靜態操作內存,不消擔憂內存洩漏等成績;vector<int*>要留意new和delete成對應用。
2)當int轉變成其他類型或構造或類的時刻,用vector<int*>這類方法比擬便利,容器裡放的內容占用的內存也絕對要少一些,指針在用的時刻,去請求空間,不消,那就是個占用4個字節的地址。