vector常用函数与代码演示:
vector类常用的函数如下所示:
1.构造函数
- vector(int nSize):创建一个vector,元素个数为nSize
- vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
- vector(const vector&):复制构造函数
- vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中
2.增加函数
- void push_back(const T& x):向量尾部增加一个元素X
- iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一个元素x
- iterator insert(iterator it,int n,const T& x):向量中迭代器指向元素前增加n个相同的元素x
- iterator insert(iterator it,const_iterator first,const_iterator last):向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据
3.删除函数
- iterator erase(iterator it):删除向量中迭代器指向元素
- iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
- void pop_back():删除向量中最后一个元素
- void clear():清空向量中所有元素
4.遍历函数
- reference at(int pos):返回pos位置元素的引用
- reference front():返回首元素的引用
- reference back():返回尾元素的引用
- iterator begin():返回向量头指针,指向第一个元素
- iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置
- reverse_iterator rbegin():反向迭代器,指向最后一个元素
- reverse_iterator rend():反向迭代器,指向第一个元素之前的位置
5.判断函数
- bool empty() const:判断向量是否为空,若为空,则向量中无元素
6.大小函数
- int size() const:返回当前元素的个数
- int capacity() const:如果不重新分配内存,当前已经分配的可以容纳的元素的个数。
- int max_size() const:返回最大可能的元素个数
7.其他函数
- void swap(vector&):交换两个同类型向量的数据
- void assign(int n,const T& x):设置该向量元素个数为n,且值均为x;原来的值清空。
- void assign(const_iterator first,const_iterator last):将另一个向量中[first,last)中元素设置成当前向量元素,原来的值清空。
vector常用函数的代码演示:
// vector.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <IOSTREAM>
#include <VECTOR>
using namespace std;
int main(int argc, char* argv[])
{
//vector四种的初始化
vector <int> vecIntA(3); //三个元素
vector <int> vecIntB(3,9); //三个不同元素
vector <int> vecIntC(vecIntB); //拷贝
vector <int> vecIntD(vecIntB.begin(),vecIntB.end()); //指定范围拷贝
for (vector<int>::iterator iA=vecIntA.begin();iA != vecIntA.end();iA++)
{
cout << *iA <<" ";
}
cout << endl;
for (vector<int>::iterator iB=vecIntB.begin();iB != vecIntB.end();iB++)
{
cout << *iB <<" ";
}
cout << endl;
for (vector<int>::iterator iC=vecIntC.begin();iC != vecIntC.end();iC++)
{
cout << *iC <<" ";
}
cout << endl;
for (vector<int>::iterator iD=vecIntD.begin();iD != vecIntD.end();iD++)
{
cout << *iD <<" ";
}
cout << endl;
//vector四种插入元素
vector <int> vecIntE(vecIntA);
vecIntE.insert(vecIntE.begin(),1); //首元素前插入元素1
vecIntE.insert(vecIntE.begin(),3,9); //首元素前插入三个相同的元素,是9
vecIntE.push_back(2);//末尾增加2
vecIntE.insert(vecIntE.begin()+7,vecIntB.begin(),vecIntB.end());
for (vector<int>::iterator iE=vecIntE.begin();iE != vecIntE.end();iE++)
{
cout << *iE <<" ";
}
cout << endl;
//vector四种删除操作
vecIntE.erase(vecIntE.begin()); //删除第一个元素
vecIntE.erase(vecIntE.begin(),vecIntE.begin()+2);//再删除前面的两个元素
vecIntE.pop_back(); //删除最后面的元素
vecIntE.clear(); //清除所有元素
for (vector<int>::iterator iE2=vecIntE.begin();iE2 != vecIntE.end();iE2++)
{
cout << *iE2 <<" ";
}
cout << endl;
//vector的遍历
vector<int> vecIntF(vecIntB);
vecIntF.at(1) += 2; //第二个元素加2
vecIntF.front() ++; //第一个元素加1
vecIntF.back() += 3; //第三个元素加3
for (vector<int>::reverse_iterator iF=vecIntF.rbegin();iF != vecIntF.rend();iF++)
{
cout << *iF <<" ";
}
cout << endl;
//判断是否为空
if(vecIntF.empty())
cout <<"Empty"<<endl;
else cout << "Not Empty" << endl;
//大小函数
int size = vecIntF.size();
int capacity = vecIntF.capacity();
int max_size = vecIntF.max_size();
cout << "size" <<" " <<size << endl;
cout << "capacity" <<" "<< capacity << endl;
cout << "max_size" <<" "<< max_size << endl;
//swap交换数据
vecIntF.swap(vecIntE);
//这个时候vector中的数据为空
for (vector<int>::iterator iF2=vecIntF.begin();iF2 != vecIntF.end();iF2++)
{
cout << *iF2 <<" ";
}
cout << endl;
//值为10.11.12
for (vector<int>::iterator iE3=vecIntE.begin();iE3 != vecIntE.end();iE3++)
{
cout << *iE3 <<" ";
}
cout << endl;
//assign进行赋值
vecIntE.assign(3,8); //赋3个值且值为8
for (vector<int>::iterator iE4=vecIntE.begin();iE4 != vecIntE.end();iE4++)
{
cout << *iE4 <<" ";
}
cout << endl;
//将vectorB中的元素赋值过来
vecIntE.assign(vecIntB.begin(),vecIntB.end());
for (vector<int>::iterator iE5=vecIntE.begin();iE5 != vecIntE.end();iE5++)
{
cout << *iE5 <<" ";
}
cout << endl;
return 0;
}
下面是程序运行界面: