要使用矢量,头文件中必须包含以下代码:
#包含
因为向量属于std命名域,所以需要命名限制,可以放在文件的开头
using std:vector; 或using namespace std;
或者,在使用vector代码之前前缀: std:vector myHouse;
)1)可以像普通数组一样访问:
vecMyHouse[50]=1024;
)2)依次向容器中填充数据
for(I=0; i 25; I )
{
VECmyhouse.push_back(I;
}
)3)动态改变其大小
vecmyhouse.resize(400;
)4)在容器中放入自定义数据类型
自定义类
class Cmyclass
{
(;
定义盛放class的容器
vector vecMyHouse;
)5)定义容器时可以给出初始值
定义存储//100个int型数据的容器,使初始值为0
vectorvecmyhouse (100,0 );
)6)可以将一个容器的对象分配给另一个容器
定义存储//100个int型数据的容器,使初始值为0
vectorvecmyhouse (100,0 );
//定义新容器,内容与上述容器相同
vector myVec;
myVec=vecMyHouse;
)7)部分常用功能
std:vector c;
//可用功能
c .删除c.clear ()//容器中的所有数据。
c .判断c.empty ()//容器是否为空。
c .删除c.erase(pos )//pos位置的数据
c.erase(Beg,end ) /删除) Beg,end )区间的数据
c.front ()//返回第一个数据。
c .在c.insert(pos,elem )//pos位置插入elem副本
c .删除c.pop_back最后的数据。
c .将数据添加到c.push_back(Elem )//末尾。
c .重新调整大小(num ) /容器
c.size ()//返回容器中实际数据的数量。
c .返回指向c.begin ()//容器的第一个元素的迭代器
c .返回指向end ()//容器中最后一个元素的迭代器
(8)迭代器
迭代器相当于指针,对于变量,可以使用指针指向相应的变量,然后使用*操作该变量
int a=10;
int *p;
p=a; //使用指针操作此变量
*p=11; //操作时a为11
对于容器,请使用迭代器操作容器中相应位置的值
如果迭代器指向容器中的位置,则可以使用*迭代器操作该位置
(9)迭代器和向量的使用方法
//定义向量
std:vector myVec;
//添加10个元素
for(intj=0; j10; j )
{
myvec.push_back(j;
}
//定义迭代器
STD : vector :3360 iterator p;
//指向容器的第一个元素
p=myVec.begin (;
//移动到下一个元素
p;
//修改该元素的赋值
*p=20; myVec容器的第二个值更改为20
//扫描迭代器以改变所有值
p=myVec.begin (;
for (; p!=myVec.end (; p )
{
*p=50;
}