以下代码不起作用,它给出了以下错误:
没有匹配函数调用类型为“const comparer”的对象
和
调用 'value_compare' 类型的对象(又名 'std::_ 1:: _map_value_compare, int, comparer, true>')不明确
这是代码:
struct comparer
{
bool operator()(const std::string x, const std::string y)
{
return x.compare(y)<0;
}
};
int main(int argc, char **argv)
{
vector< map<string,int,comparer> > valMapVect;
map<string,int,comparer> valMap;
valMapVect.push_back(valMap);
}
它是用 Xcode 5.x 编译的(在 Mac 上也是如此)。
有人知道出了什么问题吗?我认为当我在 Linux 上编译它时它正在工作。可能吗?