我正在尝试使用列表作为保存datanode对象的优先级队列的基础容器.它似乎使用vector或deque工作正常,但我尝试使用列表作为底层容器,我尝试将一些东西推入队列我得到错误:
错误3错误C2784:'unknown-type std :: operator - (std :: move_iterator <_RanIt>&,const std :: move_iterator <_RanIt2>&)':无法推断'std :: move_iterator <_RanIt>的模板参数&'from'std :: _ List_unchecked_iterator >>'
struct datanode{
int depth;
int cost;
const int SIZE = 10;
int ident[9];
int parent;
datanode(int dep, int id[9], int);
datanode(int dep, int id[9], int, int);
datanode(const datanode&);
datanode();
datanode& datanode::operator=(const datanode&);
};
class NodeComparison
{
public:
bool operator() (datanode& da, datanode& db)
{
return da.cost > db.cost;
}
};
int main(){
std::priority_queue<datanode,list<datanode>, NodeComparison> PQueue;
int a[10] = {1,2,3,4,5,6,7,8,9,10}; …Run Code Online (Sandbox Code Playgroud)