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 に答える