vector容器用法详解.docx

上传人:b****6 文档编号:2982123 上传时间:2022-11-16 格式:DOCX 页数:17 大小:327.24KB
下载 相关 举报
vector容器用法详解.docx_第1页
第1页 / 共17页
vector容器用法详解.docx_第2页
第2页 / 共17页
vector容器用法详解.docx_第3页
第3页 / 共17页
vector容器用法详解.docx_第4页
第4页 / 共17页
vector容器用法详解.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

vector容器用法详解.docx

《vector容器用法详解.docx》由会员分享,可在线阅读,更多相关《vector容器用法详解.docx(17页珍藏版)》请在冰豆网上搜索。

vector容器用法详解.docx

vector容器用法详解

vector容器用法详解

 vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。

像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。

  vector类常用的函数如下所示:

∙vector():

创建一个空vector

∙vector(intnSize):

创建一个vector,元素个数为nSize

∙vector(intnSize,constt&t):

创建一个vector,元素个数为nSize,且值均为t

∙vector(constvector&):

复制构造函数

∙vector(begin,end):

复制[begin,end)区间内另一个数组的元素到vector中

∙voidpush_back(constT&x):

向量尾部增加一个元素X

∙iteratorinsert(iteratorit,constT&x):

向量中迭代器指向元素前增加一个元素x

∙iteratorinsert(iteratorit,intn,constT&x):

向量中迭代器指向元素前增加n个一样的元素x

∙iteratorinsert(iteratorit,const_iteratorfirst,const_iteratorlast):

向量中迭代器指向元素前插入另一个一样类型向量的[first,last)间的数据

∙iteratorerase(iteratorit):

删除向量中迭代器指向元素

∙iteratorerase(iteratorfirst,iteratorlast):

删除向量中[first,last)中元素

∙voidpop_back():

删除向量中最后一个元素

∙voidclear():

清空向量中所有元素

∙referenceat(intpos):

返回pos位置元素的引用

∙referencefront():

返回首元素的引用

∙referenceback():

返回尾元素的引用

∙iteratorbegin():

返回向量头指针,指向第一个元素

∙iteratorend():

返回向量尾指针,指向向量最后一个元素的下一个位置

∙reverse_iteratorrbegin():

反向迭代器,指向最后一个元素

∙reverse_iteratorrend():

反向迭代器,指向第一个元素之前的位置

∙boolempty()const:

判断向量是否为空,假如为空,如此向量中无元素

∙intsize()const:

返回向量中元素的个数

∙intcapacity()const:

返回当前向量X红所能容纳的最大元素值

∙intmax_size()const:

返回最大可允许的vector元素数量值

∙voidswap(vector&):

交换两个同类型向量的数据

∙voidassign(intn,constT&x):

设置向量中第n个元素的值为x

∙voidassign(const_iteratorfirst,const_iteratorlast):

向量中[first,last)中元素设置成当前向量元素

示例:

#include"stdafx.h"

#include

#include

usingnamespacestd;

classA

{

//空类

};

int_tmain(intargc,_TCHAR*argv[])

{

//int型vector

vectorvecInt;

//float型vector

vectorvecFloat;

//自定义类型,保存类A的vector

vectorvecA;

//自定义类型,保存指向类A的指针的vector

vectorvecPointA;

return0;

}

//vectorsample.cpp:

定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include

#include

usingnamespacestd;

classA

{

//空类

};

int_tmain(intargc,_TCHAR*argv[])

{

//int型vector,包含3个元素

vectorvecIntA(3);

//int型vector,包含3个元素且每个元素都是9

vectorvecIntB(3,9);

//复制vecIntB到vecIntC

vectorvecIntC(vecIntB);

intiArray[]={2,4,6};

//创建vecIntD

vectorvecIntD(iArray,iArray+3);

//打印vectorA,此处也可以用下面注释内的代码来输出vector中的数据

/*for(inti=0;i

{

cout<

}*/

cout<<"vecIntA:

"<

for(vector:

:

iteratorit=vecIntA.begin();it!

=vecIntA.end();it++)

{

cout<<*it<<"";

}

cout<

//打印vecIntB

cout<<"VecIntB:

"<

for(vector:

:

iteratorit=vecIntB.begin();it!

=vecIntB.end();it++)

{

cout<<*it<<"";

}

cout<

//打印vecIntC

cout<<"VecIntB:

"<

for(vector:

:

iteratorit=vecIntC.begin();it!

=vecIntC.end();it++)

{

cout<<*it<<"";

}

cout<

//打印vecIntD

cout<<"vecIntD:

"<

for(vector:

:

iteratorit=vecIntD.begin();it!

=vecIntD.end();it++)

{

cout<<*it<<"";

}

cout<

return0;

}

程序的运行结果如下:

上面的代码用了4种方法建立vector并对其初始化

2.增加与获得元素示例:

//vectorsample.cpp:

定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include

#include

usingnamespacestd;

int_tmain(intargc,_TCHAR*argv[])

{

//int型vector,包含3个元素

vectorvecIntA;

//插入123

vecIntA.push_back

(1);

vecIntA.push_back

(2);

vecIntA.push_back(3);

intnSize=vecIntA.size();

cout<<"vecIntA:

"<

//打印vectorA,方法一:

for(inti=0;i

{

cout<

}

cout<

//打印vectorA,方法二:

for(inti=0;i

{

cout<

}

cout<

//打印vectorA,方法三:

for(vector:

:

iteratorit=vecIntA.begin();it!

=vecIntA.end();it++)

{

cout<<*it<<"";

}

cout<

return0;

}

上述代码对一个整形向量类进展操作,先定义一个整形元素向量类,然后插入3个值,并用3种不同的方法输出,程序运行结果如下:

//vectorsample.cpp:

定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include

#include

usingnamespacestd;

classA

{

public:

intn;

public:

A(intn)

{

this->n=n;

}

};

int_tmain(intargc,_TCHAR*argv[])

{

//int型vector,包含3个元素

vectorvecClassA;

Aa1

(1);

Aa2

(2);

Aa3(3);

//插入123

vecClassA.push_back(a1);

vecClassA.push_back(a2);

vecClassA.push_back(a3);

intnSize=vecClassA.size();

cout<<"vecClassA:

"<

//打印vecClassA,方法一:

for(inti=0;i

{

cout<

}

cout<

//打印vecClassA,方法二:

for(inti=0;i

{

cout<

}

cout<

//打印vecClassA,方法三:

for(vector:

:

iteratorit=vecClassA.begin();it!

=vecClassA.end();it++)

{

cout<<(*it).n<<"";

}

cout<

return0;

}

上述代码通过定义元素为类的向量,通过插入3个初始化的类,并通过3种方法输出,运行结果如下:

//vectorsample.cpp:

定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include

#include

usingnamespacestd;

classA

{

public:

intn;

public:

A(intn)

{

this->n=n;

}

};

int_tmain(intargc,_TCHAR*argv[])

{

//int型vector,包含3个元素

vectorvecClassA;

A*a1=newA

(1);

A*a2=newA

(2);

A*a3=newA(3);

//插入123

vecClassA.push_back(a1);

vecClassA.push_back(a2);

vecClassA.push_back(a3);

intnSize=vecClassA.size();

cout<<"vecClassA:

"<

//打印vecClassA,方法一:

for(inti=0;i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1