typedef map<char,string> someMap;
someMap *mapPtr=someClass.getMap();
*(mapPtr)["a"].length();
此代码的最后一行失败。为了使这项工作,我应该怎么做?
答案 0 :(得分:3)
(*mapPtr)['a'].length();
*
运算符的优先级低于[]
,因此您必须使用括号中的"a"
运算符。另外'a'
是字符串文字(字符数组),而你想要{{1}}
可以找到C ++中运算符优先级的完整列表here
答案 1 :(得分:1)
[]
的优先级高于*
这很可能是你想要的:
(*mapPtr)["a"].length();