方便檢視:
在stl的標頭檔案中定義了vector(向量容器模板類),vector容器以連續陣列的方式儲存元素序列,可以將vector看作是以順序結構實現的線性表。當我們在程式中需要使用動態陣列時,vector將會是理想的選擇,vector可以在使用過程中動態地增長儲存空間。vector模板類需要兩個模板引數,第乙個引數是儲存元素的資料型別,第二個引數是儲存分配器的型別,其中第二個引數是可選的,如果不給出第二個引數,將使用預設的分配器。
下面給出幾個常用的定義vector向量物件的方法示例:
vectors;
定義乙個空的
vector物件,儲存的是
int型別的元素。
vectors(n);
定義乙個含有
n個
int元素的
vector物件。
vectors(first, last);
定義乙個vector物件,並從由迭代器first和last定義的序列[first,last)中複製初值。
vector的基本操作有:
s[i]
直接以下標方式訪問容器中的元素。
s.front()
返回首元素。
s.back()
返回尾元素。
s.push_back(x)
向表尾插入元素
x。
s.size()
返回表長。
s.empty()
當表空時,返回真,否則返回假。
s.pop_back()
刪除表尾元素。
s.begin()
返回指向首元素的隨機訪問迭代器。
s.end()
返回指向尾元素的下乙個位置的隨機訪問迭代器。
s.insert(it, x)
向迭代器
it指向的元素前插入新元素
val。
s.insert(it, n, x)
向迭代器it指向的元素前插入n個x。
s.insert(it, first, last)
將由迭代器first和last所指定的序列[first, last)插入到迭代器it
指向的元素前面。
s.erase(it)
刪除由迭代器
it所指向的元素。
s.erase(first, last)
刪除由迭代器first和last所指定的序列[first, last)。
s.reserve(n)
預分配緩衝空間,使儲存空間至少可容納n個元素。
s.resize(n)
改變序列的長度,超出的元素將會被刪除,如果序列需要擴充套件(原空間小於n),
元素預設值將填滿擴充套件出的空間。
s.resize(n, val)
改變序列的長度,超出的元素將會被刪除,如果序列需要擴充套件(原空間小於n),
將用val填滿擴充套件出的空間。
s.clear()
刪除容器中的所有的元素。
s.swap(v)
將s與另乙個vector物件v進行交換。
s.assign(first, last)
將序列替換成由迭代器first和last所指定的序列[first, last)。[first, last)不能是原序列中的一部分。
要注意的是,resize操作和clear操作都是對錶的有效元素進行的操作,但並不一定會改變緩衝空間的大小。
另外,vector還有其他一些操作如反轉、取反等,不再一下列舉。vector上還定義了序列之間的比較操作運算子(>, <, >=, <=, ==, !=),可以按照字典序比較兩個序列。還是來看一些示例**。輸入個數不定的一組整數,再將這組整數按倒序輸出,
如下所示:
#include #include using namespace std;
int main()
對給定序列排序
#include#includeusing namespace std;
int cmp(int a,int b){
return al;
int x;
while(cin>>x)l.push_back(x);
sort(l.begin(),l.end(),cmp);
for(int i=0;i
STL vector基本用法
vector的資料安排以及操作方式,與array非常相似。兩者的唯一區別在於空間的運用的靈活性。array是靜態空間,一旦配置了就不能改變。vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。因此,vector的運用對於記憶體的合理利用與運用的靈活性有很大的幫助,我們再也...
STL vector基本用法
vector的資料安排以及操作方式,與array非常相似。兩者的唯一區別在於空間的運用的靈活性。array是靜態空間,一旦配置了就不能改變。vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。因此,vector的運用對於記憶體的合理利用與運用的靈活性有很大的幫助,我們再也...
STL Vector容器用法
以類模板形式封裝的資料結構,用於儲存資料。標頭檔案 include vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫。vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動...