STL中vector的初始化

2022-02-26 12:06:00 字數 1434 閱讀 9783

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是乙個類模板。當使用模板例項...