在vector中查找最先想到的自然是find函数
struct student{
string name;
int grade;
};
vector<student> stu;//就当数据已经存好了...
假设以name为查找对象
string str="john";
vector<student>::iterator it=find(stu.begin(),stu.end(),str);
此时迭代器it指示的就是我们查找的字符串所在的结构体在容器中的位置,但是这显然是会出错的。
find的本质是将find的第三个参数与容器中的元素进行==操作,string和student不管怎么样都不会相等的。
所以我们需要将student的==操作重写
bool student::operator ==(const string &x){
return(this->name==x);
}
这样就能按照我们的要求进行查找了。