【问题标题】:Point to an object on a container指向容器上的对象
【发布时间】:2012-11-12 03:34:01
【问题描述】:

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

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

【问题讨论】:

    标签: c++ pointers stl containers


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-01
        • 2010-09-13
        • 1970-01-01
        • 2023-02-09
        • 2011-10-01
        • 2018-02-12
        • 2014-01-07
        相关资源
        最近更新 更多