为什么输出结果与预想的刚好反过来了,我条件应该没有写错呀,不知道是哪一步出了问题
呃呃,你小括号运算符重载的逻辑恰好反了,你把 Person("诸葛亮", 30)
作为函数,相当于:
bool testCond(const Person& other) {
return 30 > other.m_Age;
}
应该可以看出,这里就是筛选出小于 30 岁的人吧。所以你需要把你的小括号重载的返回值取反即可:
bool operator() (const Person& p) {
return this->m_Age < p.m_Age;
}
这样就能筛选出比孔明大的人了。