c++中vector<int>和vector&
在使用STL容器(比如map、list、vector等)的時候,是用放一個對象還是放一個對象指針,即是用vector<int>還是vector<int*>,這里的vector可以換成其他的容器,int可以換成其他基本類型,也可以自定義的數據結構或類。
首先,要說明的是,這兩種方式,怎么用都可以實現功能,把一組整型數放到容器里。先看看兩種方式在使用的時候的區(qū)別。
1.vector<int>
vector<int> vecTemp;
for (int i=0; i< 10; i++)
{
vecTemp.push_back(i);
}
這種方式不需要動態(tà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.兩種用法的區(qū)別:
1)vector<int>不需要動態(tài)操作內存,不用擔心內存泄露等問題;vector<int*>要注意new和delete成對使用。
2)當int改變成其他類型或結構或類的時候,用vector<int*>這種方式比較方便,容器里放的內容占用的內存也相對要少一些,指針在用的時候,去申請空間,不用,那就是個占用4個字節(jié)的地址。
上一篇:linux之awk命令的用法
欄 目:C語言
下一篇:linux之sort命令的用法
本文標題:c++中vector&amp;lt;int&amp;gt;和vector&
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4018.html
您可能感興趣的文章
- 04-02func函數+在C語言 func函數在c語言中
- 04-02c語言中對數函數的表達式 c語言中對數怎么表達
- 04-02c語言沒有round函數 round c語言
- 04-02C語言中怎么打出三角函數 c語言中怎么打出三角函數的值
- 01-10深入理解C++中常見的關鍵字含義
- 01-10使用C++實現全排列算法的方法詳解
- 01-10深入Main函數中的參數argc,argv的使用詳解
- 01-10APUE筆記之:進程環(huán)境詳解
- 01-10c++中inline的用法分析
- 01-10如何尋找數組中的第二大數


閱讀排行
本欄相關
- 04-02c語言函數調用后清空內存 c語言調用
- 04-02func函數+在C語言 func函數在c語言中
- 04-02c語言的正則匹配函數 c語言正則表達
- 04-02c語言用函數寫分段 用c語言表示分段
- 04-02c語言中對數函數的表達式 c語言中對
- 04-02c語言編寫函數冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數 round c語言
- 04-02c語言分段函數怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數 c語言中怎
- 04-02c語言調用函數求fibo C語言調用函數求
隨機閱讀
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實例總結
- 08-05dedecms(織夢)副欄目數量限制代碼修改
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設置