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

此代码的最后一行失败。我应该怎么做才能完成这项工作?

4

2 回答 2

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

运算符的*优先级低于[]您必须的优先级,但在括号中。也是"a"字符串文字(char数组),而你想要'a'

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

于 2012-04-14T07:29:11.477 回答
1

[]优先级高于*

这可能是您想要的:

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

于 2012-04-14T07:27:59.593 回答