2015-02-06 112 views
0
#include <map> 

class ClassOne 
{ 
    //... 
}; 

int main() { 
    std::map< ClassOne *, int >    mapA; 
    std::map< const ClassOne *, int >  mapB; 
    std::map< ClassOne *const, int >  mapC; 
    std::map< const ClassOne * const, int > mapD; 

    return 0; 
} 

問題>我需要使用的ClassOne地址作爲std::map的關鍵。哪一個是最好的選擇?都使用const指針或指針作爲'的std ::關鍵map`

謝謝

+1

你*有*使用指針作爲關鍵?你知道使用指針作爲關鍵的陷阱嗎? – 2015-02-06 20:07:27

回答

0

這取決於你真正想做的事 - 然而,你很少想改變密鑰,所以ClassOne * const如果你不打算改變指針;如果你不想改變指針指向的對象,const ClassOne * const