国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

c++中vector<int>和vector<int*>的用法區(qū)別

2020-01-26 15:46:45
字體:
供稿:網(wǎng)友

在使用STL容器(比如map、list、vector等)的時(shí)候,是用放一個(gè)對(duì)象還是放一個(gè)對(duì)象指針,即是用vector<int>還是vector<int*>,這里的vector可以換成其他的容器,int可以換成其他基本類型,也可以自定義的數(shù)據(jù)結(jié)構(gòu)或類。

首先,要說明的是,這兩種方式,怎么用都可以實(shí)現(xiàn)功能,把一組整型數(shù)放到容器里。先看看兩種方式在使用的時(shí)候的區(qū)別。

1.vector<int>

復(fù)制代碼 代碼如下:

vector<int> vecTemp;
for (int i=0; i< 10; i++)
{
 vecTemp.push_back(i);
}

這種方式不需要?jiǎng)討B(tài)new內(nèi)存,當(dāng)然也不用delete。

2.vector<int*>

復(fù)制代碼 代碼如下:

vector<int*> vecTemp;
for (int i=0; i< 10; i++)
{
 int* nTemp = new int;
 nTemp = &i;
 vecTemp.push_back(i);
}

這種方式采用new,當(dāng)然也要用delete:
復(fù)制代碼 代碼如下:

std::vector<int*>::iterator Iter;
for(Iter=vecTemp.begin(); Iter!=vecTemp.end(); Iter++)
{
 int* temp = *Iter;

 delete temp;
 temp = NULL;
}

3.兩種用法的區(qū)別:

1)vector<int>不需要?jiǎng)討B(tài)操作內(nèi)存,不用擔(dān)心內(nèi)存泄露等問題;vector<int*>要注意new和delete成對(duì)使用。

2)當(dāng)int改變成其他類型或結(jié)構(gòu)或類的時(shí)候,用vector<int*>這種方式比較方便,容器里放的內(nèi)容占用的內(nèi)存也相對(duì)要少一些,指針在用的時(shí)候,去申請(qǐng)空間,不用,那就是個(gè)占用4個(gè)字節(jié)的地址。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西贡区| 育儿| 克什克腾旗| 洛宁县| 将乐县| 得荣县| 正镶白旗| 常熟市| 奉新县| 翁源县| 北海市| 德安县| 海兴县| 建瓯市| 香格里拉县| 鹤山市| 合江县| 布尔津县| 曲水县| 日土县| 河西区| 寻乌县| 新干县| 铁力市| 东莞市| 福建省| 依兰县| 遂昌县| 根河市| 分宜县| 高雄县| 朝阳区| 石台县| 财经| 新闻| 常德市| 临夏县| 安国市| 娄烦县| 辽宁省| 大冶市|