本期介绍基础的vector知识,内容全部在主程序之中,大家自行阅读。
#include <iostream>
#include <vector>
#include <string>
//使用vector之前必须声明其头文件
using namespace std;
struct student{
int age;
string name;
float score;
};
int main(int argc, char** argv)
{
vector<int> V1;
//声明一个整数类型的vector——V1
cout<<"请输入V1的长度:"<<endl;
int n1=0;
cin>>n1;
for(int i=1;i<=n1;i++)
{
int temp1=0;
cin>>temp1;
//vector支持不定长放入元素
V1.push_back(temp1);
//push_back方法可以将元素存入vector容器之中
}
for(int i=1;i<=5;i++)
{
V1.pop_back();
//pop_back方法用于弹出vector中的元素,经过本轮循环,vector中相当于有n-5个元素
//注意:后加入的数据先被弹出!!!
}
cout<<"此时的vector包含的元素有:"<<endl;
for(vector<int>::iterator it=V1.begin();it!=V1.end();it++)
//迭代器是STL的一大组成部分,此处使用的是前向迭代器,支持自加操作。
//每个容器都有自己独有的迭代器
{
cout<<(*it)<<" ";
//迭代器类似指针,如果想得到指向元素的值,需要进行解引用的操作
}
cout<<endl;
vector<student> V2;
//vector同样支持自定义的类型
student s1={21,"jsl",408};
V2.push_back(s1);
student s2={20,"lp",430};
V2.push_back(s2);
student s3={19,"zsf",230};
V2.push_back(s3);
//此处展示通过结构体的某一属性,来对结构体变量进行排序,实用性很高!
for(int a=0;a<=V2.size()-1;a++)
{
for(int b=a+1;b<=V2.size()-1;b++)
{
if(V2[a].age>V2[b].age)
{
student temp2=V2[a];
V2[a]=V2[b];
V2[b]=temp2;
//此处实现的是:年龄的升序
}
}
}
//仔细看,上面上其实就是普通的冒泡排序。
cout<<"年龄从小到大是:"<<endl;
for(int i=0;i<=V2.size()-1;i++)
{
// vector也支持普通数组的遍历方式
cout<<V2[i].name<<endl;
}
return 0;
}