我有std::map<std::string, myStruct>
。返回myStruct
条目的地址是安全的吗?
我确信我的条目不会被删除,但可以添加其他条目。
Type::iterator it = m_map.find(key);
if (it != m_map.end())
{
return &(it->second);
}
答案 0 :(得分:6)
很安全
在std::map
的情况下,只有删除元素的迭代器/引用/指针才会失效。
参考:
C ++ 03标准23.1.2 / 8:
只有迭代器和对已擦除元素的引用无效
答案 1 :(得分:2)
它是包含对象的地址,而不是容器的分配空间。
顺便说一句,试着解释一下你想做什么以及你的目标是什么,这样我们就会更有帮助。