3.4 重要說明
在 c++ 中,vector 是乙個十分有用的容器。它能夠像容器一樣存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。
vector 是同一種型別的物件的集合,每個物件都有乙個對應的整數索引值。和 string 物件一樣,標準庫將負責管理與儲存元素相關的記憶體。
我們把 vector 稱為容器,是因為它可以包含其他物件。乙個容器中的所有物件都必須是同一種型別的。
注意事項:
1、如果表示的向量長度較長(需要為向量內部儲存很多數),容易導致記憶體洩漏,而且效率會很低;
2、vector 作為函式的引數或者返回值時,需要注意它的寫法, 其中的「&」絕對不能少!!!
double
distance
(vector<
int>
&a, vector<
int>
&b)
使用前,需匯入標頭檔案#include
vector 是乙個類模板(class template)。使用模板可以編寫乙個類定義或函式定義,而用於多個不同的資料型別。因此,我們可以定義儲存 string 物件的 vector,或儲存 int 值的 vector,又或是儲存自定義的類型別物件(如 sales_items 物件)的 vector。
宣告從類模板產生的某種型別的物件,需要提供附加資訊,資訊的種類取決於模板。以 vector 為例,必須說明 vector 儲存何種物件的型別,通過將型別放在型別放在類模板名稱後面的尖括號中來指定型別:
宣告解釋
vector v1
儲存型別為 t 物件。預設建構函式 v1 為空
vector v2(v1)
v2 是 v1 的乙個副本
vector v3(n, i)
v3 包含 n 個值為 i 的元素
vector v4(n)
v4 含有值初始化的元素的 n 個副本
注意:1、若要建立非空的 vector 物件,必須給出初始化元素的值;
2、當把乙個 vector 物件複製到另乙個 vector 物件時,新複製的 vector 中每乙個元素都初始化為原 vectors 中相應元素的副本。但這兩個 vector 物件必須儲存同一種元素型別;
3、可以用元素個數和元素值對 vector 物件進行初始化。建構函式用元素個數來決定 vector 物件儲存元素的個數,元素值指定每個元素的初始值。
vector 物件(以及其他標準庫容器物件)的重要屬性就在於可以在執行時高效地新增元素。
建立乙個名為test,資料型別為int的vector。
vector<
int>test;
//建立乙個vector
test.
push_back(1
);test.
push_back(2
);//把1和2壓入vector,這樣test[0]就是1,test[1]就是2
建立乙個二維vector。
vector
> points;
//定義乙個二維陣列
points[0]
.size()
;//指第一行的列數
說明
命令備註
標頭檔案#include
建立vector物件
vectorvec
尾部插入數字
vec.push_back(a)
使用下標訪問元素
cout《下標是從0開始的
在插入元素
vec.insert(vec.begin()+i,a)在第i+1個元素前面插入a
刪除元素
vec.erase(vec.begin()+2
)
刪除第3個元素
向量大小
vec.size()
清空vec.clear()
使用迭代器訪問元素.
vector<
int>
::iterator it;
for(it=vec.
begin()
;it!=vec.
end(
);it++
) cout<<
*it<標頭檔案:#include
將元素翻**reverse(vec.begin(),vec.end());
標頭檔案:#include
將元素排序(公升序,從小到大):sort(vec.begin(),vec.end());
vector<
float
> vecclass;
int nsize = vecclass.
size()
;
//列印 vecclass方法一:陣列的下表必須保證是整數
for
(int i=
0;i)
//列印 vecclass方法二
for
(int i=
0;i)
//列印 vecclass方法三:輸出某一指定的數值時不方便
for
(vector<
float
>
::iterator it = vecclass.
begin()
;it!=vecclass.
end(
);it++
)
vector 的元素不僅僅可以是 int,double,string 還可以是結構體,但是要注意:結構體要定義為全域性的,否則會出錯。
#include
#include
#include
#include
using
namespace std;
typedef
struct rect
}}rect;
intmain()
C vector的使用方法
在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。一 基本操作 1 標頭檔案 include,另外需要使用 using namespace std 2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout 5 ...
c vector 向量 使用方法詳解
vector 是向量型別,它可以容納許多態別的資料,如若干個整數,所以稱其為容器。vector 是c stl的乙個重要成員,使用它時需要包含標頭檔案 複製 如下 include 一 vector 的初始化 可以有五種方式,舉例說明如下 1 vectora 10 定義了10個整型元素的向量 尖括號中為...
c vector 向量 使用方法詳解
vector 是向量型別,它可以容納許多態別的資料,如若干個整數,所以稱其為容器。vector 是c stl的乙個重要成員,使用它時需要包含標頭檔案 include vector 容器的長度不固定,能夠在程式執行時動態地改變。一 vector 的初始化 可以有五種方式,舉例說明如下 1 vector...