一.解釋:
vector(向量):是一種順序容器,事實上和數組差不多,但它比數組更優越。一般來說數組不能動態拓展,因此在程序運行的時候不是浪費內存,就是造成越界。而vector正好彌補了這個缺陷,它的特征是相當於可分配拓展的數組,它的隨機訪問快,在中間插入和刪除慢,但在末端插入和刪除快。
二.用法:
1.頭文件
#include <vector>
2.定義方式
a) vector<int>v1;//vector元素為 int 型 b) vector<string>v2;// vector元素為string型 c) vector<node>v3;//入隊元素為結構體型,結構體可以自行定義
vector<int>::iterator it;//定義一個迭代器
3.常用操作
v1.push_back() //在數組的最后添加一個數據 v1.pop_back() //去掉數組的最后一個數據
v1.front() //返回第一個元素(棧頂元素) v1.begin() //得到數組頭的指針,用迭代器接受 v1.end() //得到數組的最后一個單元+1的指針,用迭代器接受 v1.clear() // 移除容器中所有數據 v1.empty() //判斷容器是否為空 v1.erase(pos) //刪除pos位置的數據 v1.erase(beg,end)// 刪除[beg,end)區間的數據 v1.size() //回容器中實際數據的個數
v1.insert(pos,data) //在pos處插入數據
三.例子
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector <int> v; //定義vector vector<int>::iterator it; //定義一個vector迭代器 for(int i = 10; i >= 1; i--) //插入數據 v.push_back(i); cout<<"輸出:"; for(it=v.begin();it!=v.end();it++) //輸出迭代器的值 cout<<*it<<" "; cout<<endl; it-=1; cout<<"最后一個的值為:"<<*it<<" "<<endl; v.erase(it); //刪除最后一個元素 cout <<"元素個數:" <<v.size() << endl; //輸出元素個數 sort(v.begin(), v.end()); //vector排序 cout<<"排序后:"; for(it=v.begin();it!=v.end();it++) //輸出vector元素 cout << *it << " "; cout<<endl; v.insert(v.begin(),100) ; //在pos位置插入一個elem cout<<"第一個元素為:" <<v.front()<<endl;//輸出第一個元素 v.pop_back(); //去掉最后一個元素 cout << "元素個數:" <<v.size() << endl;//輸出元素個數 v.clear(); //vector清空 cout <<"清空后元素個數:" << v.size() << endl; //輸出元素個數 return 0; }