尝试将元素插入映射时出错

时间:2013-10-18 04:40:51

标签: c++ visual-c++ map stl

错误C2143:语法错误:缺少';'在'。'之前 错误C4430:缺少类型说明符 - 假定为int。注意:C不支持default-int错误C2371:'TranslationMap':重定义;不同的基本类型

static UString FindTranslatedString(UString propertyName);
static std::map<UString,UString> TranslationMap ;



static UString engString("TextAlignmentPosition");
static UString transString(MSGTXT("TextAlignmentPosition"));

TranslationMap.insert(std::pair<UString,UString>(transString,engString));

UString FindTranslatedString(UString propertyName)
{
    UString NotFound("CannotFind");
    std::map<UString, UString>::iterator itr;
    itr = TranslationMap.find(propertyName);
    if(itr!= TranslationMap.end())
    {
        return itr->second;
    }
    else
    {
        return NotFound;
    }
}

1 个答案:

答案 0 :(得分:0)

1)您使用的是c编译器(gcc)还是c ++编译器(g ++)?

2)如果这是你的整个代码,将TranslationMap.insert()全局放入是错误的,你应该把它放到一个函数中,例如: main()的

3)MSGTXT的定义是什么?