2012-04-14 12 views
2
typedef map<char,string> someMap; 
someMap *mapPtr=someClass.getMap(); 
*(mapPtr)["a"].length(); 

このコードの最後の行は失敗します。私はこの仕事をするために何をすべきですか?STLマップとポインタに関する問題

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

+0

」を見つけることができますしたいのに対し、私は作るために何をすべき。文字列リテラル(文字配列)も"a"ですこの作品?"最初にポインタを使用しないでください(値または参照によって戻されます)。 –

+0

@daknok_tこれは必ずしもあなたが制御できるものではありませんが – SirGuy

+0

@ user1203803役に立たない –

答えて

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

*オペレータは、あなたがする必要があるので、[]よりも低い優先順位を持っていますが、括弧内のその:

1

[]これは、あなたが意図し何可能性がある*

よりも優先順位が高いです。あなたは'a'

C++でのオペレータの優先順位の完全なリストは、このコードの最後の行が失敗したhere

+0

まだ多くのことを学ぶ必要があります...ありがとう。 – cngkaygusuz

関連する問題