c++ - 指向容器上的对象

标签 c++ pointers stl containers

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

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

最佳答案

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

关于c++ - 指向容器上的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13338059/

相关文章:

通过指向结构体指针的指针更改变量

c - 如何获取指针指向的内存大小?

c++ - 如何遍历两对 STL set<pair<t1,t2>,pair<t1,t2>> 中的所有元素?

c++ - 无效使用不完整类型 'class …' STL vector

c++返回自定义结构类型-错误

c# - 从 C# 调用 C++ 代码

c++ - CMake:如何仅将特定文件扩展名从一个目录复制到另一个目录

c++ - 复制构造函数还是赋值运算符?我错过了什么?

c++ - Visual C++ 中的 'Bad Ptr' 是什么意思?

c++ - 为什么 std::less 是类模板?