我正在用C++创建一个
类似问题的答案,如此链接所提到的,在声明中需要加上括号,即 std::greater() - 但是当我加入这些内容后,会出现多个有关函数返回函数的错误。
std::map<int, int>
,我希望它的键按照从大到小的顺序排序而不是默认的排序顺序。我的研究引导我找到了std::greater,看起来很有前途,但是当我尝试使用它时,我得到了一个编译错误:
invalid type argument of unary ‘*’ (have ‘int’)
我的map声明如下:
std::map<int, int, std::greater<int> > numMap;
错误来自于这个函数:
void Row::addNumber(int num, int pos) {
numMap.insert(num, pos);
}
类似问题的答案,如此链接所提到的,在声明中需要加上括号,即 std::greater() - 但是当我加入这些内容后,会出现多个有关函数返回函数的错误。
std::map
的默认比较器时,就不会出现同样的错误吗?因为在这种情况下,这应该没有任何影响。 - Benjamin Lindley