#include <vector>
#include <algorithm>
class student
{
int NO;
AnsiString strName;
int grade;
public:
student(int NO,AnsiString strName,int grade)
{
this->NO = NO;
this->strName = strName;
this->grade = grade;
}
bool operator==(AnsiString strName)
{
return this->strName == strName;
}
};
上面这个类,在STL中叫函数对象,重载运算符==,当执行Count函数时,会比较[v.begin,v.end]中的各
student对象是否与“张三”相等
void __fastcall TForm1::Button11Click(TObject *Sender)
{
vector<student> v;
student s1(1000,AnsiString("张三"),90);
student s2(1001,AnsiString("张三"),91);
student s3(1002,AnsiString("王五"),90);
student s4(1003,AnsiString("赵六"),90);
v.push_back(s1);
v.push_back(s2);
v.push_back(s3);
v.push_back(s4);
int nCount = count(v.begin(),v.end(),"张三");
ShowMessage(nCount);
}