C++ 优先级队列声明C++;
有一段时间我对此感到相当沮丧,我似乎无法找到错误所在(请注意,我的编译器不支持c++11) 基本上,我试图构造一个优先级队列,其中每个元素包含另外两个元素。第一个元素是字符向量队列,第二个元素是计算该队列的启发式元素 字符向量队列的内容并不重要,只需对启发式(更大)进行评估,如下所示C++ 优先级队列声明C++;,c++,visual-studio-2013,priority-queue,C++,Visual Studio 2013,Priority Queue,有一段时间我对此感到相当沮丧,我似乎无法找到错误所在(请注意,我的编译器不支持c++11) 基本上,我试图构造一个优先级队列,其中每个元素包含另外两个元素。第一个元素是字符向量队列,第二个元素是计算该队列的启发式元素 字符向量队列的内容并不重要,只需对启发式(更大)进行评估,如下所示 struct pathP { public: queue<vector<char>> que; int hue; }; struct pathComp { bool
struct pathP
{
public:
queue<vector<char>> que;
int hue;
};
struct pathComp
{
bool comp(const pathP &s1, const pathP &s2) const
{
return s1.hue < s2.hue;
}
};
错误c2064读取“term不计算为具有2个参数的函数”
我不知道如何修复它struct pathComp
struct pathComp
{
bool operator()(const pathP &s1, const pathP &s2) const
{
return s1.hue < s2.hue;
}
};
{
布尔运算符()(常量路径P&s1,常量路径P&s2)常量
{
返回s1.hue
priority\u queue
未使用名为comp
的方法。相反,您应该定义一个函子,它是一个覆盖上述操作符()
的类。struct pathComp
{
布尔运算符()(常量路径P&s1,常量路径P&s2)常量
{
返回s1.hue
priority\u queue
未使用名为comp
的方法。相反,您应该定义一个函子,它是一个覆盖上述operator()
的类。可以发布一个吗?可以发布一个吗?
pathStore.que = saveQ;
heur = h1;
pathStore.hue = heur;
endV.push(pathStore); //error C2064
struct pathComp
{
bool operator()(const pathP &s1, const pathP &s2) const
{
return s1.hue < s2.hue;
}
};