C STL 容器Vector的簡單概念和用法

2021-09-22 20:12:49 字數 1492 閱讀 7755

一、vector的概念

模板類vector類似於string類,本質上也是一種動態陣列。它是使用new運算子動態建立陣列的替代品。實際上,vector類確實用new和delete運算子來管理記憶體(計算機自動完成)。因此,vector類所建立的物件都儲存在自由儲存區即 free store。

二、使用vector前需要注意的事項

1)要使用vector類來建立vector物件,必須包含標頭檔案vector;

2)vector包含在命名空間std中,using namespace std或std::vector;

3)vector類使用不同的語法來指定元素數目。

#include #include using namespace std;

int main()

三、如何對vector容器中的元素進行簡單操作

由於運算子 [ ] 在vector類中被過載,因此建立vector的物件後,可以使用low-level array即通常陣列的表示法來訪問vector容器中的各個元素。

當然,所有的stl容器都提供了一些基本方法,如size()——返回容器中元素的數目;swap()——交換兩個容器的內容;begin()——返回乙個指向容器第乙個元素的迭代器;end()——返回乙個指向容器尾的迭代器。

說到對容器中的元素進行提取和簡單操作,就不得不提為容器而生的迭代器——iterator

本質上,迭代器是一種指標,它讓stl能夠為各種不同的容器種類提供統一的介面。每個容器類都定義了合適的迭代器,此處我們說的vector迭代器的型別是乙個名為iterator的typedef,其作用域為整個類。例如:我們要為vector的double型別宣告乙個迭代器

vector::iterator pd; //pd is an iterator
此處我們假設scores是乙個vector的double型別的物件,則可以使用迭代器pd執行以下的操作

vectorscores;

pd=scores.begin();

*pd=2.23; //assign 22.3 to *pd

++pd; //make pd point to the next element

//遍歷整個容器中的內容

for(pd=scores.begin();pd!=scores.end();pd++)

cout<<*pd《此外,還有puch_back(),erase()和insert()三個函式能夠對vector物件進行操作

1)puch_back()函式將元素新增到向量的末尾

2)erase()函式刪除向量中給定區間內的元素。它接受兩個迭代器引數,他們確定了要刪除的區間。如scores.erase(scores.begin();scores.begin()+2);

3)insert()函式接受三個迭代器引數,第乙個引數指定了新元素的插入位置,第二和第三個引數定義了被插入的區間

C STL 考點 容器(vector)

default 1 explicit vector const allocator type alloc allocator type fill 2 explicit vector size type n vector size type n,const value type val,const a...

C STL感知 vector容器

vector容器非常類似陣列,也稱單端陣列 vector容器的迭代器支援隨機訪問與陣列不同 陣列是在靜態空間分配,vector可以動態擴充套件動態擴充套件原理 重新分配空間,將原空間資料拷貝到新空間,再釋放原空間建立vector容器void get vector void show vector v...

C STL中的容器 Vector

c stl中的verctor好比是c語言中的陣列,但是vector又具有陣列沒有的一些高階功能。與陣列相比,vector就是乙個可以不用再初始化就必須制定大小的邊長陣列,當然了,它還有許多高階功能。要想用vector首先得包含標頭檔案vector。如果vector的元素型別是int,預設初始化為0 ...