谓词比较问题
关于priority_queue:
priority_queue 默认是最大元素优先,个人想写一个最小元素优先的例子。
代码如下:
struct cmp
{
bool operator()(const int &a,const int &b)
{
return a<b;
}
};
pri_queue_test.push(3);
pri_queue_test.push(5);
pri_queue_test.push(7);
pri_queue_test.push(1);
while(pri_queue_test.size() != 0)
{
cout<<pri_queue_test.top()<<endl;
pri_queue_test.pop();
}
问题出在return a<b这里; 个人一直认为无论是二元谓词 or 运算符重载 这样写(return a<b)都表示数值小的优先。
但是程序结果却相反,请大家指教。