我有以下問題:如何避免const轉換爲map訪問?
std::map<A*,double> map;
void getColor(A const * obj){
double d = map[obj]; // does not compile wihtout const_cast<A*>(obj)
// do something
}
我有地圖std::map
(的地方),存儲對象指針A
。 我有一個功能getColor
其中不操縱對象A
,因此需要一個指針作爲輸入const A
。
函數getColor
不會使用const_cast進行編譯。
的const的轉換是一個設計問題,但我不知道如何來規避它,如果我不想使按鍵在map
常量。
任何幫助表示讚賞。
出於好奇:你爲什麼不想讓鍵爲const? –
爲什麼你不想把鍵作爲'const A *'? – Gonmator
相關:http://stackoverflow.com/a/17639764/4181011 –