我目前正在C ++中创建一个与优先级队列兼容的结构(即我可以创建Item_Node的优先级队列),并且优先级队列按绑定值排序(上限=更高优先级)。以下是我对此的看法:
struct jmp {
char op;
double (*func)(double a, double b);
} jtable = {
{ '+', add },
{ '-', sub },
{ '*', mul },
{ '/', div },
{ 0, NUUL },
};
// in some function:
for (size_t i = 0; jtable[i].op; ++i) {
if (jtable[i].op == requested_op) {
result = jtable[i].func(a, b);
}
}
编译时出现以下错误: 错误:可能无法在返回类型中定义新类型(在struct Item_Node的行上) 注意:(在'Item_Node'定义后可能缺少分号) 错误:'operator<'声明中的两个或多个数据类型(在行bool运算符< ...上) 错误:'}'标记之前的预期声明(在下一行上有};)
我特别不理解第三个,因为据我所知,我只有一种数据类型。