STL標準模板庫之vector

2022-05-02 20:12:07 字數 2054 閱讀 2752

目錄

stl提供了一組表示容器、迭代器、函式物件和演算法的模板。

stl使得能夠構造各種容器(包括陣列、佇列和鍊錶)和執行各種操作(包括搜尋、排序和隨機排列)

接下來介紹幾種acmer必須掌握的幾個成員

向量(vector)是乙個封裝了動態大小陣列的順序容器(sequence container)。跟任意其它型別容器一樣,它能夠存放各種型別的物件。可以簡單的認為,向量是乙個能夠存放任意型別的動態陣列。

一般來說陣列不能動態拓展,因此在程式執行的時候不是浪費記憶體,就是造成越界。而vector正好彌補了這個缺陷,它的特徵是相當於可分配拓展的陣列(動態陣列),它的隨機訪問快,在中間插入和刪除慢,但在末端插入和刪除快。

//標頭檔案必須包含:

#include//定義乙個vector,int為陣列元素的資料型別,test1為動態陣列名

vectortest1;

//定義乙個元素為結構體型的vector

vectortest2

//定義乙個迭代器

vector::iterator it;

vector的初始化可以有很多種方式:

//定義10個整型元素的向量(尖括號中為元素型別名,它可以是任何合法的資料型別),但沒有給出初值,其值是不確定的。

① vectora(10);

//定義了10個整型元素的向量,且給出每個元素的初值為1

② vectora(10,1);

//用b向量來建立a向量,整體複製性賦值

③ vectora(b);

//定義了a值為b中第0個到第2個(共3個)元素

④ vectora(b.begin(),b.begin+3);

//從陣列中獲得初值

⑤ int b[7]=;

vectora(b,b+7);

a.resize(10); //將a的現有元素個數調至10個,多則刪,少則補,其值隨機

a.resize(10,2); //將a的現有元素個數調至10個,多則刪,少則補,其值為2

a.assign(b.begin(), b.begin()+3); //b為向量,將b的0~2個元素構成的向量賦給a

a.assign(4,2);//a只含4個元素,且每個元素為2

//假設 a:5 7 3 1 4;b: 2 3 4 5 6 7 8

a.push_back(2);//a:5 7 3 1 4 2

a.insert(a.begin()+1,2);//a:5 2 7 3 1 4

a.insert(a.begin()+1,2,3);//a:5 3 3 7 3 1 4

a.insert(a.begin()+1,b.begin()+2,b.begin()+5);//a:5 4 5 6 7 3 1 4

a.erase(a.begin()+1,a.begin()+3); //刪除a中第1個(從第0個算起)到第2個元素,也就是說刪除的元素從a.begin()+1算起(包括它)一直到a.begin()+3(不包括它)
需要包含標頭檔案:

#include(1)sort(a.begin(),a.end()); //對a中的從a.begin()(包括它)到a.end()(不包括它)的元素進行從小到大排列

(2)reverse(a.begin(),a.end()); //對a中的從a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素為1,3,2,4,倒置後為4,2,3,1

(3)copy(a.begin(),a.end(),b.begin()+1); //把a中的從a.begin()(包括它)到a.end()(不包括它)的元素複製到b中,從b.begin()+1的位置(包括它)開始複製,覆蓋掉原有元素

(4)find(a.begin(),a.end(),10); //在a中的從a.begin()(包括它)到a.end()(不包括它)的元素中查詢10,若存在返回其在向量中的位置

標準模板庫STL之vector

stl vector 用於實現陣列的功能,相當於在陣列的基礎上封裝了一些常用的功能 push back在尾部新增乙個元素 pop back在尾部刪除乙個元素 clear清空所有的元素 at按索引訪問某個位置的元素 front返回頭元素 back返回尾元素 size返回元素的個數 capacity返回...

標準模板庫STL之vector

一 向量vector用於實現陣列的功能 便於訪問,不便於插入刪除 相當於在陣列的基礎上封裝了一些常用的功能。函式功能 功能push back 在尾部新增乙個元素 pop back 在尾部刪除乙個元素 clear 清空所有元素 at按索引訪問某個位置的元素 front 返回頭元素 back 返回尾元素...

STL標準模板庫 vector

原 2019年02月09日 12 24 18 bbbbbinary 閱讀數 162 更多分類專欄 stl 筆記總結 vector可以看作陣列的增強版,可以用類似陣列的直接取得方式訪問,也可以使用函式操作,好處是可以不用提前規定長度,可以實現不定長度的儲存。需要的標頭檔案 include vector...