typedef map<char,string> someMap;
someMap *mapPtr=someClass.getMap();
*(mapPtr)["a"].length();
此代碼的最後一行失敗。我應該怎樣才能做到這一點?STL映射和指針問題
typedef map<char,string> someMap;
someMap *mapPtr=someClass.getMap();
*(mapPtr)["a"].length();
此代碼的最後一行失敗。我應該怎樣才能做到這一點?STL映射和指針問題
(*mapPtr)['a'].length();
的*
運營商具有比[]
較低的優先級,所以你必須,但在括號。此外"a"
是字符串字面量(字符數組),而你想'a'
在C運算符優先級的完整清單++可以發現here
[]
比*
這可能是更高的優先級,你打算什麼:
(*mapPtr)["a"].length();
還有很多東西要學習......謝謝。 – cngkaygusuz 2012-04-14 07:55:51
「這段代碼的最後一行失敗。我應該爲了湊合這項工作?「首先不要使用指針(按值或引用返回)。 – 2012-04-14 07:27:08
@daknok_t這不一定是你可以控制的東西 – SirGuy 2012-04-14 07:30:09
@ user1203803沒有幫助 – 2013-08-06 19:14:12