長話短說是有效的:const_cast映射的鍵值有效嗎?
map<int,int>m;
m.insert(make_pair(1, 40));
for(map<int,int>::iterator it = m.begin(); it != m.end(); ++it)
{
const_cast<int&>(it->first) = 2;
}
它的作品,我也遇到過自己在這個問題,這在現實情況下,地圖是地圖上兩個班,map<classA,classB>
和訪問非const的我不得不const_cast<classA&>(it->first).NonConstFunction()
,這是我想到的第一個想法,是這樣做還是有什麼更好?
我不知道在哪裏具體說,但我相當肯定這是'const'的一個很好的理由。 – chris
主要的第一個應該是它的地圖的關鍵,問題是這些類有數據類型的成員,這些成員應該在某些時候改變,並且這些類的地圖可能是我的解決方案的最佳途徑 –
如果你想要類似鍵然後使用'std :: multimap'。你在做什麼是危險的,因爲整個地圖沒有它的知識就有相同的密鑰! – iammilind