簡體   English   中英

映射/設置迭代器不兼容-檢查密鑰是否存在於映射中

[英]map/set iterators incompatible - checking if key exists in map

函數執行時,出現以下錯誤: 映射/設置迭代器不兼容 我做錯了什么?

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;
schema[table_name][field_name].find("max") == 
    schema[table_name]["field_name"].end()

您的第二個field_name用引號引起來,因此它正在比較來自兩個不同映射的迭代器(除非field_name的值為“ field_name”),這是無效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM