一、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 ...