vector(動態數組或向量):動態分配內存空間的線性儲存結構。
需要包括頭文件<vector>
定義:
vector<數據類型> 變量名;
Eg:
vector<int> s; //定義了一個數據類型為整形的動態數組;
基本操作(紅色標識為常用操作):
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 指向的元素前插入新元素x。
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.clear()刪除容器中的所有的元素。
s.swap(v)將s 與另一個vector 對象v 進行交換。
代碼解釋:
#include<vector>
#include<iostream>
using namespace std;
vector <int> a;//定義整型動態數組a;
int main()
{
a.push_back(1);//在表末壓入數字1;
a.push_back(2);
a.push_back(3);
cout<<*a.end()<<endl;//用於解釋迭代器所指向的為表末元素的下一個儲存位置;
vector <int> ::iterator itor=a.begin();//迭代器只了解即可,藍色標識部分為迭代器的類型,為整型動態數組的迭代器ator,初始位置為a.begin();
for (;itor!=a.end();itor++)//用迭代器來遍歷表中的所有元素;
cout<<*itor<<endl;//迭代器類似於指針,需要用*運算來取得其內容;
for (int i=0;i<a.size();i++)
cout<<a[i]<<endl; //利用下標法來遍歷表中所有元素;
a.pop_back();//刪除表末最後一個元素;3 out
cout<<*(a.end()-1)<<endl;//輸出表末最後一個元素,這時輸出的是2;
return 0;
}
//若看不太懂,推薦C++遠征之模板篇第六章 標准模板類。