#include<iostream>
#include<vector> //动态数组 可变数组
#include<algorithm> //算法
using namespace std;
//STL基本语法
void PrintVector(int v){
cout<<v<<" ";
}
void test01(){
//定义一个容器,并且制定这个容器存放元素的类型是int
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
//容器提供迭代器
//vector<int>::iterator 迭代器类型
vector<int>::iterator pBegin = v.begin(); //通过vector容器的begin方法得到一个迭代器 ,这个迭代器指向容器的开始区间
vector<int>::iterator pEnd = v.end();
//通过STL提供的 for_each 算法 //for_each()有三个参数 (开始迭代器,结束迭代器,回调)
//容器中可能存放基础的数据类型,也可能存放自定义数据类型
for_each(pBegin,pEnd,PrintVector);
}
//容器存放自定义类型
class Person{
public:
Person(int age,int id):mage(age),mid(id){}
public :
int mage;
int mid;
};
void test02(){
//容器
vector<Person> v;
Person p1(10,20),p2(30,40),p3(50,60);
v.push_back(p1);
v.push_back(p2);
v.push_back(p3);
//算法-遍历
for(vector<Person>::iterator i = v.begin(); i!= v.end(); i++ ) //迭代器
cout<<(*i).mage<<" "<<(*i).mid<<endl; //迭代器看作指针,*迭代器 = 值
}
int main(){
test01();
cout<<endl;
test02();
return 0;
}