Я пытаюсь создать самодельную мини-кучу с шаблоном класса, чтобы я мог работать на Dijkstra или Prim.Однако функция find_min () не работает с std :: min_element ().Любая подсказка будет принята с благодарностью.Спасибо!
сообщение об ошибке от VC2010express, короче говоря, говорит:
ошибка C2780: '_FwdIt std :: min_element (_FwdIt, _FwdIt)': ожидается 2 аргумента - 3 предоставлено
и код ниже:
#ifndef MIN_HEAP_H
#define MIN_HEAP_H//use (unsorted) vector and min() algorithm
#include <vector>
#include <algorithm>
#include <functional>
template <typename T>
class MinHeap{
std::vector<T> c;//container
typedef typename std::vector<T>::iterator iterator;
bool compare_node(const T& lhs,const T& rhs) const {return lhs<rhs;}//define compare function for nodes
public:
MinHeap():c(){}//default constructor
inline void insert(T node){c.push_back(node);}
iterator find_min(){
iterator min_node=std::min_element(c.begin(),c.end(),compare_node);//doesn't build
return min_node;
}
// deleteMin();
// deleteNode(node);
// decreaseKey(node);
};
#endif