- 簡單地說,vector是數組的一種類表示,它提供了自動內存管理功能,可以動態的改變vector對象的長度,並隨着元素的添加和刪除兒女增大和縮小。它提供了對元素的隨機訪問。在尾部添加和刪除元素的時是固定的,但在頭部或中間插入和刪除元素的複雜度爲線性時間。
- 除序列外,vector還是可反轉容器概念的模型。這增加了兩個類方法,rbegin() 和 rend() 。前者返回一個指向反序列的第一個元素的迭代器,後者返回反轉序列的超尾迭代器。
- 關於順序容器的函數 請訪問 STL——概述 中的 “ 順序容器和關聯容器中都有的成員函數” 及 “順序容器的常用成員函數”。
-
vector 插入刪除 示例
代碼實現爲:
#include<iostream>
#include<vector>
using namespace std;
template<class T>
void PrintVector(T s,T e)
{
for(;s!=e;++s)
cout << *s << " ";
cout << endl;
}
int main()
{
int a[5]={1,2,3,4,5};
vector<int>v(a,a+5); //將數組a的下標從0到4的元素進入到v中
cout << "1) " << v.end()-v.begin() << endl; //兩個隨機迭代器可以相減,輸出 1)5
cout << "2) ";
PrintVector(v.begin(),v.end());
v.insert(v.begin()+2,13); //在位於begin()+2的位置上插入13
cout << "3) ";
PrintVector(v.begin(),v.end());
v.erase(v.begin()+2); //刪除位於begin()+2的元素
cout << "4) ";
PrintVector(v.begin(),v.end());
vector<int>v2(4,100); //v2有4個元素,都是100
v2.insert(v2.begin(),v.begin()+1,v.begin()+3); //將v的一段插入v2開頭
cout << "5) v2: ";
PrintVector(v2.begin(),v2.end());
v.erase(v.begin()+1,v.begin()+3); //刪除v上的一個區間,即2,3
cout << "6) ";
PrintVector(v.begin(),v.end());
return 0;
}
運行結果:
代碼實現:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<vector<int> >v(3); //v有3個元素,每個元素都是vector<int>容器
for(int i=0;i<v.size();++i)
{
for(int j=0;j<4;++j)
{
v[i].push_back(j);
}
}
for(int i=0;i<v.size();++i)
{
for(int j=0;j<v[i].size();++j)
{
cout << v[i][j] << " ";
}
cout << endl;
}
return 0;
}
運行結果爲: