Moh*_*mar 2 c++ queue compare class priority-queue
以下给出了下面提到的代码的错误.哪里出错了?
error: ‘function’ is not a member of ‘std’
Run Code Online (Sandbox Code Playgroud)
我想使用C++ std lib队列进行优先级队列,最小化队列是IceCream,它花费的时间最少.我试过实现这个 - > 用自定义比较器在c ++中声明一个priority_queue
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
#include <vector>
#include <queue>
#include <deque>
#include <iterator>
#include <string>
#include <sstream>
using namespace std;
class IceCream
{
public:
int time_to_prep;
IceCream(int flav) {
time_to_prep = flav;
}
};
bool Compare(IceCream a, IceCream b)
{
return a.time_to_prep > b.time_to_prep;
}
int main()
{
priority_queue<IceCream, vector<IceCream>, std::function<bool(IceCream a, IceCream b)> > my_pq(Compare);
my_pq.push(IceCream(4));
my_pq.push(IceCream(33));
my_pq.push(IceCream(9));
cout << my_pq.top() << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
#include <functional>
Run Code Online (Sandbox Code Playgroud)
您需要此包含才能访问 std::function
请参阅:http://en.cppreference.com/w/cpp/utility/functional/function
| 归档时间: |
|
| 查看次数: |
1565 次 |
| 最近记录: |