仿函数:自定义priority_queue

在默认的STL中,priority_queue一般是大根堆,如果想要改成小根堆或者自定义数据类型,就需要写仿函数,例子如下:

[c language=”++”]
struct cmp
{
bool operator()(const int&a, const int&b)
{//小根堆
return a > b;
}
};
priority_queue<int, vector<int>, cmp> minHeap;
[/c]

需要说明的是,需要return a>b,这样才构成小根堆,因为原STL中,调用的是a<b操作构成的大根堆。

如果需要自定义数据结构,同样采取上述办法即可。

Leave a Reply

Your email address will not be published. Required fields are marked *