预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C++中的vector使用范例 一、概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小。 例如: //c语言风格 intmyHouse[100]; //采用vector vector<int>vecMyHouse(100); 当如上定义后,vecMyHouse就可以存放100个int型的数据了。 1.它可以像普通数组一样访问 eg:vecMyHouse[50]=1024; 2.你可以顺序地向容器中填充数据 eg:inti=0; for(;i<25;i++) { vecMyHouse.push_back(1); } 3.它还可以动态地改变它的大小,通过下面这条语句实现 //将容器的大小改为400,这样容器中就可以容纳400个int型数据了 eg:vecMyHouse.resize(400); 4.你也可以在容器中装入自定义的数据类型 eg: //自定义一个class classCmyclass { }; //定义一个存放class的容器 vector<Cmyclass>vecMyHouse; 5.你可以在定义容器时为它赋初值 //定义一个容纳100个int型数据的容器,初值赋为0 vector<int>vecMyHouse(100,0); 6.你可以把一个容器的对象赋值给另外一个容器 eg: //定义一个容纳100个int型数据的容器,初值赋为0 vector<int>vecMyHouse(100,0); //定义一个新的容器,内容与上述容器一样 vector<int>myVec; myVec=vecMyHouse; 二、以上是vector容器的简单介绍,下面将详细介绍它的其他功能: 1.为了使用vector,必须在你的头文件中包含下面的代码: #include<vector> 2.vector属于std命名域的,因此需要通过命名限定,可以在文件开头加上 usingstd::vector; 或者 usingnamespacestd; 或者直接在使用vector的代码前加前缀 eg: std::vector<int>myHouse; 3.vector提供如下函数或操作: 下面列举了部分常用的功能 //定义一个vector std::vector<int>c; //可以使用的功能 c.clear()移除容器中所有数据。 c.empty()判断容器是否为空。 c.erase(pos)删除pos位置的数据 c.erase(beg,end)删除[beg,end)区间的数据 c.front()传回第一个数据。 c.insert(pos,elem)在pos位置插入一个elem拷贝 c.pop_back()删除最后一个数据。 c.push_back(elem)在尾部加入一个数据。 c.resize(num)重新设置该容器的大小 c.size()回容器中实际数据的个数。 c.begin()返回指向容器第一个元素的迭代器 c.end()返回指向容器最后一个元素的迭代器 三、下面描述一下什么是迭代器 迭代器相当于指针,例如: //对于变量而言,使用指针指向对应的变量 //以后就可以使用*加指针来操作该变量了 inta=10; int*p; p=&a; //使用指针操作该变量 eg:*p=11;//操作后a变为11 //对于容器,使用迭代器操作容器中对应位置的值 //当迭代器指向了容器中的某位置,则可以使用*加迭代器操作该位置了 //定义一个vector std::vector<int>myVec; //添加10个元素 for(intj=0;j<10;j++) { myVec.push_back(j); } //定义一个迭代器 std::vector<int>::iteratorp; //指向容器的首个元素 p=myVec.begin(); //移动到下一个元素 p++; //修改该元素赋值 *p=20;//<则myVec容器中的第二个值被修改为了20 //循环扫描迭代器,改变所有的值 p=myVec.begin(); for(;p!=myVec.end();p++) { *p=50; } 以上简单讲述了vector的用法,仅供入门之用,谢谢。 --------------------------------------------------------------