返回std :: map值的地址是安全的吗?

pan*_*ati 6 stl map

我有一个std::map<std::string, myStruct>.返回myStruct条目的地址是安全的吗?
我确信我的条目不会被删除,但可以添加其他条目.

Type::iterator it = m_map.find(key);

if (it != m_map.end())
{
     return &(it->second);
}
Run Code Online (Sandbox Code Playgroud)

Alo*_*ave 6

这很安全.
如果std::map只有迭代器/引用/指向已删除元素的指针无效.

参考:
C++ 03标准23.1.2/8:

只有迭代器和对已擦除元素的引用才会失效