Vector简介
标准库Vector类型
使用需要的头文件:
#include <vector>
Vector:Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。
一、 定义和初始化
Vector<T> v1; //默认构造函数v1为空
Vector<T> v2(v1);//v2是v1的一个副本
Vector<T> v3(n,i);//v3包含n个值为i的元素
Vector<T> v4(n); //v4含有n个值为0的元素
二、 值初始化
1> 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。
2> 如果保存的式含有构造函数的类类型的元素,标准库使用该类型的构造函数初始化。
3> 如果保存的式没有构造函数的类类型的元素,标准库产生一个带初始值的对象,使用这个对象进行值初始化。
三、Vector对象最重要的几种操作
1. v.push_back(t) 在数组的最后添加一个值为t的数据
2. v.size() 当前使用数据的大小
3. v.empty() 判断vector是否为空
4. v[n] 返回v中位置为n的元素
5. v1=v2 把v1的元素替换为v2元素的副本
6. v1==v2 判断v1与v2是否相等
7. !=、<、<=、>、>= 保持这些操作符惯有含义
四、简单程序示例:读一组数据到vector对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。
#include <iostream> #include <vector> using namespace std; int main() { vector<int> ivec; int ival;
//读入数据到vector对象 cout<<"Enter numbers(Ctrl+Z结束)"<<endl; while(cin>>ival) ivec.push_back(ival);
//计算相邻元素的和并输出 if(ivec.size()==0){ cout<<"No element?!"<<endl; return -1; } cout<<"Sum of each pair of adjacent elements in the vector:"<<endl; for(vector<int>::size_type ix=0;ix<ivec.size()-1;ix+=2){ cout<<ivec[ix]+ivec[ix+1]<<'/t'; if((ix+1)%6==0) cout<<endl; }
if(ivec.size()%2!=0) cout<<endl<<"The last element is not summed and its value is "<<ivec[ivec.size()-1]<<endl;
return 0; }