stl模板中vector的用法以及其功能

来源:互联网 发布:双十一值得买 知乎 编辑:程序博客网 时间:2024/04/30 05:08
vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
简单的使用方法如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int cmp(const &a,const &b)
{return b-a;}
int main()
{
while(1)
{
int n;

cout<<"动态创建一个大小为n的int型数组"<<endl;
cout<<"输入创建的数组的原始元素个数:";
cin>>n;
vector <int>a(n);//动态创建一个大小为n的int型数组
for(int i=0;i<n;i++)
cin>>a[i];
cout<<"创建原始序列a"<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"在队尾插入新的三个元素4,5,6"<<endl;
a.push_back(4);
a.push_back(5);
a.push_back(6);//在数组的队尾插入新的元素
for(i=0;i<n+3;i++)
cout<<a[i]<<" ";
cout<<endl;
a.insert(a.begin()+2,100);//在指定位置插入新元素
cout<<"在第三个位置插入新的元素100"<<endl;
for(i=0;i<n+4;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"删除第四个元素"<<endl;
a.erase(a.begin()+3);
for(i=0;i<n+3;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"运用迭代器对数组元素遍历,将其中大于2的元素全部输出"<<endl;
vector<int>::iterator it;     //定义迭代器变量对vector变量进行遍历
for(it=a.begin();it!=a.end();it++)
{
if(*it>2)
cout<<*it<<" ";
}
cout<<endl;
cout<<"使用reverse对数组进行反向的排列"<<endl;
reverse(a.begin(),a.end());//参数为数组首末的地址,需要algorithm头文件支持 
for(it=a.begin();it!=a.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
cout<<"用size()输出数组的元素个数"<<endl;
cout<<"数组中共有"<<a.size()<<"个元素"<<endl;
cout<<"运用sort函数对于数组进行默认的升序排序"<<endl;
sort(a.begin(),a.end());
for(it=a.begin();it!=a.end();it++)
cout<<*it<<" ";
cout<<endl;
cout<<"在sort函数使用自定义的cmp函数对于数组进行降序的排列"<<endl;
sort(a.begin(),a.end(),cmp);
for(it=a.begin();it!=a.end();it++)
cout<<*it<<" ";
cout<<endl;
if(a.empty())//若为空返回1否则返回0
cout<<"数组空间为空"<<endl; 
else
cout<<"数组空间不为空"<<endl;
cout<<"运用clear函数清空数组中所有元素"<<endl;
a.clear();
if(a.empty())//若为空返回1否则返回0
cout<<"数组空间为空"<<endl; 
else
cout<<"数组空间不为空"<<endl;
cout<<endl<<endl<<endl;
}
return 0;
}
原创粉丝点击