У меня есть структура, объекты которой должны быть помещены в boost::heap::priority_queue
.
typedef struct
{
int i, j;
double deltaQ;
} heapNode;
int main()
{
double a[] = {0.03, 0.01, 0.04, 0.02, 0.05};
heapNode node;
boost::heap::priority_queue<heapNode> maxHeap;
for(int i = 0; i < 5; i++)
{
node.deltaQ = a[i];
node.i = i;
node.j = i;
maxHeap.push(node);//error
}
for(int i = 0; i < 5; i++)
{
node = maxHeap.top();
cout << node.deltaQ << " " << node.i << " " << node.j;
cout << "\n";
maxHeap.pop();
}
}
, этот код выдает ошибку компилятора, которая
error: no match for 'operator<' (operand types are 'const heapNode' and 'const heapNode')|
Любые решения для этого,Я использую кодовые блоки 16.01.
Спасибо