【发布时间】:2018-01-27 21:04:42
【问题描述】:
所以我一直在 STL 中使用比较器函子,但从未真正理解返回 true 或 false 的含义。我不得不一直运行它并调整函子。例如假设我有以下代码
struct functor
{
// does returning true place a before b ?
bool operator()(int a,int b)
{
if (a < b)
return true;
return false;
}
};
int main()
{
std::priority_queue<int, std::vector<int>,functor> q;
for(int n : {1,8,5,6,3,4,0,9,7,2})
q.push(n);
}
谁能解释一下
bool operator()(int a,int b)
{
if (a < b)
return true;
return false;
}
在b 之前返回一个真实的地方a 吗?我正在尝试提出类似“如果 a 小于 b 则返回 true 并且 true 意味着 a 将被放置在 b 之前”之类的东西,但显然这是不正确的
【问题讨论】:
-
对于所需的排序,如果它的第一个参数 (
a) 在它的第二个参数 (b) 之前,则函数应该返回true。