STL - 返回 std::map 值的地址是否安全?

标签 stl map

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

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

if (it != m_map.end())
{
     return &(it->second);
}

最佳答案

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

引用:
C++03 标准 23.1.2/8:

Only iterators and references to the erased elements are invalidated

关于STL - 返回 std::map 值的地址是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215358/

相关文章:

c++ - map<A, set<A*>> 与 set<A> 其中 A 包含 A* 的集合

c++ - 如何用默认值填充 `std::vector<std::vector<T>>`?

groovy - 给定值,在 map 中查找键

JSF-2 f :selectItems with Map does not display itemLabel

javascript - 在 Javascript 中使用枚举的值作为另一个枚举的键

c++ - 使用 std::unique_copy 从 vector 中提取唯一的、不区分大小写的字符串

c++ - 测试是否存在左移运算符

C++缓冲池?

用于大型共享状态的 scala/akka/stm 设计?

map - 如何更改 openlayers 标记图标?