【发布时间】:2012-11-17 05:31:59
【问题描述】:
长话短说是否有效:
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有充分的理由。 -
主要的第一个应该是它的地图的关键,问题是这些类有数据类型成员应该在某些时候改变,而带有这些类的地图可能是最好的方式我的解决方案
-
如果您想要类似的密钥,请使用
std::multimap。您所做的事情很危险,因为整个地图在其不知情的情况下拥有相同的密钥!
标签: c++ map iterator constants