求助!这里如何用stl 的find_if()?
class Student
{
public:
……
void show();
private:
string name;//姓名
string id;//身份证
string e_id;//准考号
……
};
bool isValidID(const string &id){……};
bool isValidE_id(const string &eid){……};
bool isValidName(const string &n){……};
vector<Student> stu;//全局变量
//查找已有的学生信息
void Find()
{
if(stu.empty())
{
cout<<"错误!还没有学生信息!\n";
return;
}
int sch;
string findstr;
cout<<"通过什么方式查询?\n1.身份证\t2.准考证\t3.姓名\n";
cin>>sch;
if(sch==1)
{
cout<<"请输入要查找的身份证号码:\n";
cin>>findstr;
while(1)
{
if(!isValidID(findstr))
{
cout<<"错误的身份证号码!请重新输入:\n";
cin.clear ();
cin.ignore ();
cin>>findstr;
}
else break;
}
}
else if(sch==2)
{
cout<<"请输入要查找的准考证号码:\n";
cin>>findstr;
while(1)
{
if(!isValidE_id(findstr))
{
cout<<"错误的准考证号码!请重新输入:\n";
cin.clear ();
cin.ignore ();
cin>>findstr;
}
else break;
}
}
else if(sch==3)
{
cout<<"请输入要查找的学生姓名:\n";
cin>>findstr;
while(1)
{
if(!isValidName(findstr))
{
cout<<"错误的姓名!请重新输入:\n";
cin.clear ();
cin.ignore ();
cin>>findstr;
}
else break;
}
}
**=find_if(stu.begin(),stu.end(),??)//这里**定义成什么? ??怎么添加函数,使我完成匹配的搜索?
//这里怎么再显示找到的这个对象?
}