目录
vector存放自定义类型数据 class Person
bool comperperson(Person& ob1, Person& ob2)//当自定义类型需要排序sort的时候
//由于sort()不认识你所定义的类型,所以需要排序规则
#include<algorithm>
class Person{
friend void printfPerson(vector<Person>& ob);
friend bool comperperson(Person& ob1, Person& ob2);
private:
int num;
string name;
public:
Person() {};
Person(int num, string str)
{
this->num = num;
this->name = str;
}
};
bool comperperson(Person& ob1, Person& ob2)//当自定义类型需要排序sort的时候
//由于sort()不认识你所定义的类型,所以需要排序规则
{
return ob1.num < ob2.num;
}
void text01()
{
vector<Person>ob;
ob.push_back(Person(4,"kk"));
ob.push_back(Person(3, "hh"));
ob.push_back(Person(1, "ll"));
ob.push_back(Person(5, "jj"));
ob.push_back(Person(2, "xx"));
printfPerson(ob);
cout << endl;
sort(ob.begin(),ob.end(), comperperson);
printfPerson(ob);
}
void printfPerson(vector<Person>&ob)
{
//有一个点就是当访问容器的时候不管你拿什么第一步永远都是拿它的迭代器
vector<Person>::iterator it = ob.begin();
for(;it!=ob.end();it++)
cout << (*it).name << " " << (*it).num<<endl;
}
int main()
{
text01();
return 0;
}
迭代器的初步了解
迭代器(iterable)是一个超级接口! 是可以遍历集合的对象,为各种容器提供了公共的操作接口,隔离对容器的遍历操作和底层实现,从而解耦。“所以说就是它为容器提供了一个公共接口,方便遍历”
迭代器是一种对象,它能够用来遍历STL容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址,所以可以认为迭代器其实就是用来指向容器中数据的指针,我们可以通过改变这个指针来遍历容器中的所有元素。-----这是一个博主的文章,可以借鉴一下