1. 程式人生 > >STL vector(向量) C++

STL vector(向量) C++

標頭檔案  #include<vector>

定義:vector<變數型別> 變數名;//此處的變數型別可以為任意型別

例:vector<變數型別> s;

vector類稱作向量類,實現了動態陣列,使用者無需預先開闢陣列空間;元素下標同陣列相同,不同的是在對其進行操作時,其大小會動態改變。

向量的訪問方式與陣列的訪問方式一致,也可以使用下標進行訪問,也可以使用其at(num)訪問num位置的元素

常用方法:

特定位置元素進行索引查詢:s.at(indec);   // 越界會丟擲異常,用陣列下標訪問不會丟擲異常

清除向量中所有的元素:s.clear();             //  clear()

刪除向量中最後一個元素:s.pop_back();  //  pop_back()

判斷向量是否為空:s.empty();                //   empty()

向量的大小:s.size();                             //   size()

尾部插入元素:s.push_back();               //    push_back()

返回向量首部第一個元素:s.front();       //    front()

刪除某個特定元素:s.erase(s.begin()+num);//刪除第num+1個元素

在某個位置插入一個元素:s.insert(s.begin()+num,a);//在第num+1位置插入元素a

兩個(正向)迭代器:begin()和end();  //begin()指向向量的第一個元素、end()指向向量的最後一個元素的下一個位置 。

兩個(反向)迭代器:rbegin()和rend()://rbegin()指向向量的最後一個元素、rend()指向第一個元素之前的位置。

遍歷整個向量(迭代器方式)

vector<變數型別>:: iterator 迭代器名;   //  例 vector<變數型別>:: iterator it;

for(it=s.begin();it!=s.end();it++){
       cout<<*it<<endl;
}

實現隨機訪問O(1)效率較高;對插入和刪除操作時間複雜度較高