一.解釋:
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;
}