2

这是一个有效的好习惯吗?(假设这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;
}

如果是,指针会直接指向地图内的对象吗?指针所做的任何更改都会更改地图中的对象吗?

4

2 回答 2

3

您可以像这样获得指向内部对象的指针std::map<u_long, AREANPLAYER>。只要地图存在并且该对象没有从地图中删除,地图中的对象就会保持原样。

于 2012-11-12T03:46:52.553 回答
1

绝对没有理由这样做。operator[]返回对存储值的引用,允许您更改值而无需使用指针。

于 2012-11-12T03:47:24.750 回答