我正在编写一个包含多组生日对象的生日日历。我的比较功能排序不正确,我无法按名称搜索 b 日。
class CompareName
{
public:
bool operator()(Birthday* a,Birthday *b)
{
if(a->getLastName()==b->getLastName() && a->getFirstName() != b->getFirstName())
return( a->getFirstName() < b->getFirstName());
else
return (a->getLastName()<b->getLastName());
}
这是我的比较功能。我希望能够按生日或部分生日和全名搜索数据库。我无法按名称搜索部分工作。
void MultiSet::searchByName( Birthday *a)
{
NameSet::iterator result;
result=nameSet.find(a);
if(result!=nameSet.end())
(*result)->print();
}
我已经为 multiset 使用了类型 def 并在我的定义中使用它来包含对象函子,但为了简洁起见,将其从这段代码摘录中删除。