这是一种有效的良好做法吗? (假设ARENAPLAYER
是结构)
ARENAPLAYER* CArena::GetPlayer( u_long idPlayer )
{
map<u_long, ARENAPLAYER>::iterator it = m_mArenaMap.find( idPlayer );
if( it != m_mArenaMap.end() )
return &it->second;
return NULL;
}
如果是,指针是否会直接指向地图内的对象?指针所做的任何更改都会改变地图中的对象吗?
答案 0 :(得分:3)
你可以像这样指向std::map<u_long, AREANPLAYER>
内的对象。只要地图存在且地图中的对象没有从地图上删除,地图内的对象就会保持不变。
答案 1 :(得分:1)
绝对没有理由这样做。 operator[]
返回对存储值的引用,允许您更改值而不会乱用指针。