当函数执行时,我有以下错误: map / set iterators不兼容。 我做错了什么?
bool isAuto(string table_name, string field_name, SCHEMA schema)
{
if (schema[table_name][field_name].find("max") == schema[table_name]["field_name"].end())
{
return false;
}
return schema[table_name][field_name]["auto"] == "true" && schema[table_name][field_name]["type"] == "int";
}
数据:
SCHEMA schema;
schema["przedmioty"]["id"]["type"] = "int";
schema["przedmioty"]["id"]["auto"] = "true";
schema["przedmioty"]["nazwa"]["type"] = "string";
schema["przedmioty"]["semestr"]["type"] = "int";
schema["przedmioty"]["semestr"]["max"] = "10";
schema["przedmioty"]["semestr"]["min"] = "1";
类型定义:
typedef map<string, map<string, map<string, string> > > SCHEMA;
答案 0 :(得分:3)
schema[table_name][field_name].find("max") ==
schema[table_name]["field_name"].end()
您的第二个field_name
在引号中,因此它会比较来自两个不同地图的迭代器(除非field_name
的值为“field_name”),这是无效的。