程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++中vector<int>和vector<int*>的用法差別

c++中vector<int>和vector<int*>的用法差別

編輯:關於C++

c++中vector<int>和vector<int*>的用法差別。本站提示廣大學習愛好者:(c++中vector<int>和vector<int*>的用法差別)文章只能為提供參考,不一定能成為您想要的結果。以下是c++中vector<int>和vector<int*>的用法差別正文


在應用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個字節的地址。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved