我在C++中创建了一个std::map<int, int>
,我希望它们的键从高到低排序,而不是默认的排序顺序。我的研究使我std::greater这看起来很有前途,但尝试使用它时,我得到一个编译错误:如何用std :: greater对C++映射键进行排序?
invalid type argument of unary ‘*’ (have ‘int’)
我的地图声明:
std::map<int, int, std::greater<int> > numMap;
和错误正从该抛出功能:
void Row::addNumber(int num, int pos) {
numMap.insert(num, pos);
}
答案如this类似的问题包括在声明中括号,即性病::更大() - 但是当我包含那些关于函数返回函数的多个错误。
当你向后读地图时,你的问题是不是解决了?只是说。 – fonZ 2013-02-16 20:56:41
你是说当你使用'std :: map'的默认比较器时你没有得到相同的错误?因为在这种情况下这应该不重要。 – 2013-02-16 21:00:28