C 中vector和vector的區別

2021-06-20 21:01:57 字數 905 閱讀 2762

在使用stl容器(比如map、list、vector等)的時候,是用放乙個物件還是放乙個物件指標,即是用vector還是vector,這裡的vector可以換成其他的容器,int可以換成其他基本型別,也可以自定義的資料結構或類。

首先,要說明的是,這兩種方式,怎麼用都可以實現功能,把一組整型數放到容器裡。先看看兩種方式在使用的時候的區別。

1.vector

[cpp]view plain

copy

vector<

int> vectemp;  

for(

inti=0; i< 10; i++)    

這種方式不需要動態new記憶體,當然也不用delete。

2.vector

[cpp]view plain

copy

vector<

int*> vectemp;  

for(

inti=0; i< 10; i++)    

這種方式採用new,當然也要用delete:

[cpp]view plain

copy

std::vector<

int*>::iterator iter;  

for(iter=vectemp.begin(); iter!=vectemp.end(); iter++)    

3.兩種用法的區別:

1)vector不需要動態操作記憶體,不用擔心記憶體洩露等問題;vector要注意new和delete成對使用。

2)當int改變成其他型別或結構或類的時候,用vector這種方式比較方便,容器裡放的內容占用的記憶體也相對要少一些,指標在用的時候,去申請空間,不用,那就是個占用4個位元組的位址。

c 中vector和vector的用法區別

在使用stl容器 比如map list vector等 的時候,是用放乙個物件還是放乙個物件指標,即是用vector還是vector,這裡的vector可以換成其他的容器,int可以換成其他基本型別,也可以自定義的資料結構或類。首先,要說明的是,這兩種方式,怎麼用都可以實現功能,把一組整型數放到容器...

C 中vector和list排序

容器 泛型演算法 和類是不是就是c 相對於c 的那部分呢?暫時先這麼認為吧。如果這篇部落格有幸被別人看到,請幫忙指出。c 菜鳥 留。vector的迭代器是隨機訪問迭代器,支援泛型演算法的sort及其演算法。vector排序 include include include include includ...

C 中vector和list區別

記憶體空間 vector和陣列類似,記憶體空間是連續的,並且其實位址不變 list是由雙向鍊錶實現的,記憶體空間是不連續的。訪問 vector能夠進行高效的隨機訪問操作,時間複雜度為o 1 list是通過指標訪問資料,不能進行隨機訪問,時間複雜度是o n 插入 刪除 vector因位址時連續的,進行...