一.vector
頭文件# include<vector>
構建函數5種:
1.vector<type>test;
test.push_back(element);
例:vector<int>test;
test.push_back(1);
2.vector<type>test(size);
例:vector<int>test(10);
for(int i=0;i<10;i++)
test.push_back(i);
3.vector<type>test(size,element);
例:vector<int>test(10,10);
4.vector<type>test(a,a+n);
例:int a[5]={1,2,3,4,5};
vector<int>test(a,a+5);
5.vector<type>test<const vector&>
複製構造函數
二、vector具有的操作:
1.增加元素
《1》void push_back(element);//element可以是簡單類型,也可以是自定義類
例:test.push_back(1);//在尾部添加一個元素
《2》iterator insert(iterator it,type x);
返回類型爲:iterator,在迭代器it之前添加一個元素
《3》void insert(iterator it,int n,type x);
//在迭代器it之前添加n個x
《4》void insert(iterator it,const_iterator first,const_iterator last);
//在迭代器it之前插入另一個相同類型的向量在區間[first,last)內的元素
2.刪除函數
《1》iterator erase(iterator it);//刪除迭代器it指向的元素
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
test.erase(test.begin()+2);//刪除第三個元素
《2》iterator erase(iterator first,iterator last);//刪除區間[first,last)內的元素
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
test.erase(test.begin(),test.begin+2);//刪除0到2個元素
《3》void pop_back();//刪除向量中最後一個元素
《4》void clear();//刪除向量中所有元素
3判斷是否爲空
bool empty() const;//true爲空
4判斷向量大小
《1》int size() const;
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
int size=test.size();//獲得向量空間大小
《2》int capacity const;//返回當前向量所能容納的最大元素值;
《3》int max_size() const;//返回最大可允許的vector的數量
5.遍歷函數
《1》reference at(int pos);//獲得破損位置元素的引用
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
for(int i=0;i<4;i++)
{
int &nValue=test.at(i);
cout<<nValue<<"/t";
}
《2》reference front();//返回首元素的引用
《3》reference back();//返回尾元素的引用
例:vector<int>test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
test.push_back(4);
int &avalue=test.front(); // 獲得首元素的引用
int &bvalue=test.back();//獲得尾元素的引用
《4》iterator begin();//返回向量頭指針
《5》iterator end();返回向量尾指針後面的指針,end()-1指向最後一個元素
《6》reverse_iterator rbegin();//反向迭代器,最後一個元素指針
《7》reverse_iterator rend();//反響迭代器,第一個元素之前的指針
6.交換類函數
《1》void swap(vector&);//交換兩個同類向量數據
《2》void assign(int n,const type x);//向量中第n個元素設爲x
《3》void assign(const_iterstor first,const_iterator last);//向量中[first,last)之間的元素設置爲當前向量中的元素
整理例子:
# include<stdio.h>
#include<iostream>
#include<vector>
using namespace std;
int main(int argc,char *argv[])
{
vector<int>test;
for(int i=0;i<10;i++)
test.push_back(i);
int size=test.size();
//下面是各種方式的輸出,三種輸出方式也就意味着有三種改變向量元素值得方法
int j=0;
for(j=0;j<size;j++)
cout<<test[j]<<"\t";//類似於數組的輸出
cout<<endl;
for(j=0;j<size;j++)
{
int &value=test.at(j);
cout<<value<<"\t";//引用的輸出
}
cout<<endl;
vector<int>::iterator it=test.begin();
while(it!=test.end()){
cout<<*it<<"\t";//迭代器的輸出
it++;
}
cout<<endl;
return 0;
}