typedef map<char,string> someMap;
someMap *mapPtr=someClass.getMap();
*(mapPtr)["a"].length();
このコードの最後の行は失敗します。この作業を行うにはどうすればよいですか?
typedef map<char,string> someMap;
someMap *mapPtr=someClass.getMap();
*(mapPtr)["a"].length();
このコードの最後の行は失敗します。この作業を行うにはどうすればよいですか?
(*mapPtr)['a'].length();
演算子は*
優先順位が低い[]
ため、括弧内にある必要があります。また"a"
、必要なのに対し、文字列リテラル(char配列)です'a'
C++ での演算子の優先順位の完全なリストは、ここにあります。
[]
より優先度が高い*
これはおそらくあなたが意図したものです:
(*mapPtr)["a"].length();