vector可用於代替c++中的陣列,一般一致認為應該多用vector,因為它的效率更高,而且具備很好的異常安全性。而且vector是stl推薦使用的預設容器,stl中向量是使用陣列實現的,因此向量具有順序表的特點,可以快速隨機訪問資料。向量是一種資料型別的物件的集合,每個物件根據其位置有乙個整數索引值與其對應,類似於陣列。
使用向量之前,必須包含相應的標頭檔案:
#includeusing std::vector
同時也應當注意,vector是乙個模板類,而非資料型別。所以在定義物件時必須說明vector儲存的物件型別。以下給出一些初始化的例子:
1 vector v; //定義向量物件
2 vector v(v1); //
定義向量物件v,並且用v1初始化
3 vector v2(n,i); //
定義向量物件v2,包含了n個值為i的元素
4 vector v3(n); //
定義向量物件v3,其中包含了n個元素值為0的元素
接著介紹一種使用陣列初始化向量元素的方式,這種方式在刷題時非常常見,有必要掌握:
1 #include "stdafx.h
"2 #include 3 #include
4 #include 5 #include 6 #include 7
using
namespace
std;
8class
solution
17return
res;18}
19};
20int
main()21;
24int numlength = sizeof(num) / sizeof(num[0
]);25 vector nums(num, num + numlength); //
使用陣列初始化向量
26for (vector::iterator it = nums.begin(); it != nums.end(); it++) //
使用迭代器訪問向量元素
27 cout << *it << "";
28 cout <29//
cout << a.arraypairsum(nums) << endl;
30return0;
3132 }
這裡有兩點需要說明:1、迭代器類似於指標,可以用迭代器訪問向量中相應的元素;2、nums.begin()表示迭代器指向nums的第乙個元素,但是nums.end()則表示迭代器指向nums最後乙個元素的下乙個元素,實際上是不對應數值的,在使用時要多加小心。
vector的使用其實還可以呼叫一些常用的藉口,比如insert,push_back之類的,vector的介面使用說明參見:
在此不再贅述。
C STL中vector的初始化
vector的初始化有很多方式,在n維初始化時還會一些容易出現錯誤的地方。下面進行總結 以下的總結均以int作為模板引數 vector的建構函式通常來說有五種,如下 vector 建立乙個空vector vector int nsize 建立乙個vector,元素個數為nsize vector in...
vector陣列的初始化
vector容器是包含 type 型別元素的序列容器。vector容器的大小 長度 可以自動增長,從而可以包含任意數量的元素,只要元素個數超出 vector 當前容量,就會自動分配更多的空間。但是只能在容器尾部高效地刪除或新增元素。vectorname type 指數組型別,例如int,float,...
vector物件的初始化
1 標準庫型別vector表示物件的集合,其中所有物件的型別必須相同。因為vector容納著 容納著 其他物件,所以也常被稱作容器。2 想要使用vector必須包含適當的標頭檔案。include using std vector 其定義在命名空間std中 3 vector是乙個類模板。當使用模板例項...