vector, 向量c的用法是什么?不知道小伙伴们今天来看看边肖的分享吧!Vector是一种向量类型,可以容纳很多类型的数据,比如几个整数,所以叫容器。
Vector是C STL的重要成员。使用它时,需要包含头文件:
#includevector;
第一,向量的初始化
(1)向量a(10);//定义10个整数元素(尖括号中的元素类型名称,可以是任何合法的数据类型)的向量,但不给出初始值,其值不确定。
#includeiostream
#includemath.h
#includevector
using namespace std;
int main()
{
vectorint a(10);
for(int i=0;ia.size();i++)
couta[i] ;
return 0;
}
(2)向量a(10,1);//定义一个10个整数元素的向量,每个元素的初始值给定为1。
试验
#includeiostream
#includemath.h
#includevector
using namespace std;
int main()
{
vectorint a(10,1);
for(int i=0;ia.size();i++)
couta[i] ;
return 0;
}
(3)向量a(b);//使用B向量创建A向量,并分配整个副本。
测试:
#includeiostream
#includemath.h
#includevector
using namespace std;
int main()
{
vectorint b(10,3);
vectorint a(b);
for(int i=0;ia.size();i++)
couta[i] ;
return 0;
}
(4)向量a(b.begin(),b . begin 3);//定义了第0到第2个(共3个)元素测试,值为b:
#includeiostream
#includemath.h
#includevector
using namespace std;
int main()
{
vectorint b;
for(int i=0;i10;i++)
b.push_back(i);
向量a(b.begin(),b . begin()3);//用值b定义第0到第2(共3)个元素。
for( i=0;ia.size();i++)
couta[i] ;
return 0;
}
(5)int b[7]={1,2,3,4,5,9,8 };
向量a(b,B7);//从数组中获取初始值,从B开始,一共七个。
测试:
#includeiostream
#includemath.h
#includevector
using namespace std;
int main()
{
int b[7]={1,2,3,4,5,6,7};
向量a(b,B7);//从数组中获取初始值,从B开始,共7!
for( int i=0;ia.size();i++)
couta[i] ;
return 0;
}
其次,vector对象的几个重要操作说明如下:
(1)a.assign(b.begin(),b . begin()3);//b是一个向量,由b的0~2个元素组成的向量赋给a。
(2)a .赋值(4,2);//是的,A只包含4个元素,每个元素是2。
a . back();//返回的最后一个元素。
a . front();//返回的第一个元素。
(5)a[I];//当且仅当a[i]存在时,返回A的第I个元素。
(6)a . clear();//清除中的元素。
(7)a . empty();//判断A是否为空,为空则返回ture,不为空则返回false。
(8)a . pop _ back();//删除A向量的最后一个元素
(9)a.erase(a.begin() 1,a . begin()3);//删除A中的第1个(从0开始计数)到第2个元素,
也就是说,被删除的元素从a.begin() 1(包括它)开始计数到a.begin() 3(不包括它)。
(10)a . push _ back(5);//在a的最后一个向量后插入一个值为5的元素。
(11)a.insert(a.begin() 1,5);//在A的第一个元素(从第0个开始计数)的位置插入值5,如A为1,2,3,4,插入元素后为1,5,2,3,4。
(12)a.insert(a.begin() 1,3,5);//在A的第一个元素的位置插入3个数字(从0开始计数),它们的值都是5。
(13)a.insert(a.begin() 1,b 3,b 6);//b是一个数组。在A的第一个元素的位置(从0开始计数)插入B的第三个元素到第五个元素(不包括b 6)。
比如B是1,2,3,4,5,9,8,插入元素后是1,4,5,9,2,3,4,5,9,8。
(14)a . size();//返回中的元素数;
(15)a . capacity();//返回内存中可以容纳的元素总数。
(16)a . resize(10);//将A的现有元素数调整为10,如果删除的元素多,如果添加的元素少,则值是随机的。
(17)a.resize(10,2);//将A的现有元素数调整为10,如果删除的元素多,如果添加的元素少,则值为2。
(18)a .储备(100);//将A的容量扩展到100,
也就是说现在测试a . capacity();返回值是100。这个操作只有在你需要给A添加大量数据的时候才有意义,因为这样会避免内存的多次扩容操作(当A的容量不足时,电脑会自动扩容,
当然,这必然会降低性能)
(19)a .互换(b);//b是一个向量,A和B中的元素整体交换。
(20)a==b;//b是向量,向量的比较运算还是可以的!=,=,=,
三、按顺序访问向量的几种方法,例如,如下:
(1)向向量a添加元素
1、利用push_back()
vectorint a;
for(int i=0;i10;i++)
a.push_back(i);
2、也可以从数组中选择元素向向量中添加
int a[6]={1,2,3,4,5,6};
vectorint b;
for(int i=1;i=4;i++)
b.push_back(a[i]);
3、也可以从现有向量中选择元素向向量中添加
int a[6]={1,2,3,4,5,6};
vectorint b;
vectorint c(a,a+4);
for(vectorint:iterator it=c.begin();itc.end();it++)
b.push_back(*it);
4、也可以从文件中读取元素向向量中添加
ifstream in(data.txt);
vectorint a;
for(int i; ini)
a.push_back(i);
5、【误区】
vectorint a;
for(int i=0;i10;i++)
a[i]=i;
//这种做法以及类似的做法都是错误的。刚开始我也犯过这种错误,后来发现,下标只能用于获取已存在的元素,而现在的a[i]还是空的对象
(2)从向量中读取元素
1、通过下标方式读取
int a[6]={1,2,3,4,5,6};
vectorint b(a,a+4);
for(int i=0;i=b.size()-1;i++)
coutb[i] ;
2、通过遍历器方式读取
int a[6]={1,2,3,4,5,6};
vectorint b(a,a+4);
for(vectorint:iterator it=b.begin();it!=b.end();it++)
cout*it ;
vector,以上就是本文为您收集整理的vector最新内容,希望能帮到您!更多相关内容欢迎关注。