STL地图和指针的问题

时间:2012-04-14 07:25:18

标签: c++

typedef map<char,string> someMap;
someMap *mapPtr=someClass.getMap();
*(mapPtr)["a"].length();

此代码的最后一行失败。为了使这项工作,我应该怎么做?

2 个答案:

答案 0 :(得分:3)

    (*mapPtr)['a'].length();

*运算符的优先级低于[],因此您必须使用括号中的"a"运算符。另外'a'是字符串文字(字符数组),而你想要{{1}}

可以找到C ++中运算符优先级的完整列表here

答案 1 :(得分:1)

[]的优先级高于*

这很可能是你想要的:

(*mapPtr)["a"].length();