全球旧事资料 分类
量。返回容器中实际数据的个数。将c1和c2元素互换。同上操作。创建一个空的vector。复制一个vector。创建一个vector,含有
个数据,数据均已缺省构造产生。
vectorElemc
elem创建一个含有
个elem拷贝的vector。vectorElemcbege
d创建一个以bege
d区间的vector。cvectorElem销毁所有数据,释放内存。
Page2of8
fSTLvector容器介绍
Vector操作
函数operator描述返回容器中指定位置的一个引用。
创建一个vector
vector容器提供了多种创建方法,下面介绍几种常用的。创建一个Widget类型的空的vector对象:vectorWidgetvWidgetsSi
cevectorisaco
tai
eritsmemberfu
ctio
soperateo
iteratorsa
dtheco
tai
eritselfsoitca
holdobjectsofa
ytype
创建一个包含500个Widget类型数据的vector:vectorWidgetvWidgets500创建一个包含500个Widget类型数据的vector,并且都初始化为0:vectorWidgetvWidgets500Widget0创建一个Widget的拷贝:vectorWidgetvWidgetsFromA
othervWidgets
向vector添加一个数据
vector添加数据的缺省方法是push_back。push_back函数表示将数据添加到vector的尾部,并按需要来分配内存。例如:向vectorWidget中添加10个数据,需要如下编写代码:fori
ti0i10ivWidgetspush_backWidgeti
获取vector中制定位置的数据
很多时候我们不必要知道vector里面有多少数据,vector里面的数据是动态分配的,使用push_back的一系列分配空间常常决定于文件或一些数据源。如果你想知道vector存放了多少数据,你可以使用empty。获取vector的大小,可以使用size。例如,如果你想获取一个vectorv的大小,但不知道它是否为空,或者已经包含了数据,如果为空想设置为1,你可以使用下面的代码实现:i
t
Sizevempty1static_casti
tvsize
访问vector中的数据
使用两种方法来访问vector。1、vectorat2、vectoroperatoroperator主要是为了与C语言进行兼容。它可以像C语言数组一样操作。但at是我们的首选,
Page3of8
fSTLvector容器介绍因为at进行了边界检查,如果访问超过了vector的范围,将抛出一个例外。由于operator容易造成一些错误,所有我们很少用它,下面进行验证一下:分析下面的代码:vectori
tvvreserve10fori
ti0i7ivpush_backitryi
tiVal1v7
otbou
dscheckedwill
otthrowi
tiVal2vat7bou
dscheckedwillthrowifoutofra
gecatchco
stexceptio
ecoutewhat我们使用reserve分配了10个i
t型的空间,但并不没有初始化。如下图所示:
你可以在这个代码中尝试不同条件,观察它的r
好听全球资料 返回顶部