2
次のコードでは、次のようなエラーが発生します。 どこが間違っていますか?C++でベクタを使用した単純優先度キューの実装
error: ‘function’ is not a member of ‘std’
は、私はC++のstd libのキューを使用したプライオリティキューを作成し、キューをminにしたいことは、少なくとも準備をするために時間がかかるというアイスクリームです。私はこれを実装しようとしている - >declaring a priority_queue in c++ with a custom comparator
#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;
}
: 'operator <<'に一致するものはありません(オペランドの型は 'std :: ostream {別名std :: basic_ostream}'と 'const value_type {別名const IceCream}') cout << my_pq.top()<< endl; ' –
@MohitKumar最後の行に別のコンパイルエラーがあるということは、印刷できない 'IceCream'のインスタンスを返す' my_pq.top() 'を印刷しようとしているためです。 'cout << my_pq.top()を実行する必要があります。time_to_prep << endl' – sji
@MohitKumarこれは別の問題です。 –