指向容器上的对象

Point to an object on a container

本文关键字:对象      更新时间:2023-10-16

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

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

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

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