vector類稱作向量類,它實現了動態陣列,用於元素數量變化的物件陣列。像陣列一樣,vector類也用從0開始的下標表示元素的位置;但和陣列不同的是,當vector物件建立後,陣列的元素個數會隨著vector物件元素個數的增大和縮小而自動變化。
#include "stdafx.h"
#include#includeusing namespace std;
class a
; int _tmain(int argc, _tchar* argv)
// vectorsample.cpp : 定義控制台應用程式的入口點。
//
#include "stdafx.h"
#include#includeusing namespace std;
class a
; int _tmain(int argc, _tchar* argv)
; //建立vecintd
vectorvecintd(iarray,iarray+3);
//列印vectora,此處也可以用下面注釋內的**來輸出vector中的資料
/*for(int i=0;i::iterator it = vecinta.begin();it!=vecinta.end();it++)
cout<::iterator>
cout<::iterator>
cout<::iterator>
cout程式的執行結果如下:
上面的**用了4種方法建立vector並對其初始化
// vectorsample.cpp : 定義控制台應用程式的入口點。
//
#include "stdafx.h"
#include#includeusing namespace std;
int _tmain(int argc, _tchar* argv)
cout上述**對乙個整形向量類進行操作,先定義乙個整形元素向量類,然後插入3個值,並用3種不同的方法輸出,程式執行結果如下:
// vectorsample.cpp : 定義控制台應用程式的入口點。
//
#include "stdafx.h"
#include#includeusing namespace std;
class a
};
int _tmain(int argc, _tchar* argv)
cout上述**通過定義元素為類的向量,通過插入3個初始化的類,並通過3種方法輸出,執行結果如下:
// vectorsample.cpp : 定義控制台應用程式的入口點。
//
#include "stdafx.h"
#include#includeusing namespace std;
class a
};
int _tmain(int argc, _tchar* argv)
cout
} cout<::iterator>
cout上述**通過定義元素為類指標的向量,通過插入3個初始化的類指標,並通過3種方法輸出指標指向的類,執行結果如下:
修改元素的方法主要有三種:1.通過陣列修改,2.通過引用修改,3.通過迭代器修改
// vectorsample.cpp : 定義控制台應用程式的入口點。
//
#include "stdafx.h"
#include#includeusing namespace std;
int _tmain(int argc, _tchar* argv)
cout<::iterator>
cout<::iterator>
*itr = 28;
cout<
cout程式執行結果如下:
刪除向量主要通過erase和pop_back,示例**如下:
// vectorsample.cpp : 定義控制台應用程式的入口點。
//
#include "stdafx.h"
#include#includeusing namespace std;
int _tmain(int argc, _tchar* argv)
vecinta.erase(vecinta.begin()+4);
cout<
cout<::iterator>
cout<::iterator>
cout程式執行結果如下:
當執行**vectorv(2,5)時,在記憶體裡建立了2個整形元素空間,值是5.當增加乙個元素時,原有的空間由2個程式設計4個整形元素空間,並把元素1放入第3個整形空間,第4個空間作為預留空間。當增加元素2時,直接把值2放入第4個空間。當增加元素3時,由於原有向量中沒有預留空間,則記憶體空間由4個變為8個整形空間,並把值放入第5個記憶體空間。
總之,擴大新元素時,如果超過當前的容量,則容量會自動擴充2倍,如果2倍容量仍不足,則繼續擴大2倍。本圖是直接在原空間基礎上畫的新增空間,其實要複雜的多,包括重新配置、元素移動、釋放原始空間的過程。因此對vector容器而言,當增加新的元素時,有可能很快完成(直接存在預留空間中),有可能稍慢(擴容後再放新元素);對修改元素值而言是較快的;對刪除元素來說,弱刪除尾部元素較快,非尾部元素稍慢,因為牽涉到刪除後的元素移動。
// vectorsample.cpp : 定義控制台應用程式的入口點。
//
#include "stdafx.h"
#include#include#includeusing namespace std;
class student
void display()
student* find(string strno)
} student *s = null;
if(bfind)
s = &m_vstud.at(i);
return s;
} };
int _tmain(int argc, _tchar* argv)
**執行例項如下:
vector容器用法詳解
vector類稱作向量類,它實現了動態陣列,用於元素數量變化的物件陣列。像陣列一樣,vector類也用從0開始的下標表示元素的位置 但和陣列不同的是,當vector物件建立後,陣列的元素個數會隨著vector物件元素個數的增大和縮小而自動變化。include stdafx.h include inc...
vector容器用法
1 標頭檔案 include.2 建立vector物件,vector vec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec.begin it vec.end it cout it 6 插入元素 vec.i...
vector容器用法(二)
vector容器用法 一 刪除指定位置的元素 vector a 3,6 初始化了3個值為6的元素 a.erase a.begin 0 刪除第乙個元素值得注意的是erase的引數為指向相應元素的迭代器,不能是其他型別的數,刪除後,後面的元素會替代上去,所以vector也會相應地改變。string也有e...