Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个std::map<std::string, myStruct>. 返回myStruct条目的地址是否安全? 我确信我的条目不会被删除,但可以添加其他条目。
std::map<std::string, myStruct>
myStruct
Type::iterator it = m_map.find(key); if (it != m_map.end()) { return &(it->second); }
这是安全的。 如果std::map只有迭代器/引用/指向已删除元素的指针无效。
std::map
参考: C++03 标准 23.1.2/8:
只有迭代器和对已擦除元素的引用无效
它是包含对象的地址,而不是容器在其中分配的空间。
顺便说一句,试着解释一下你想要做什么以及你的目标是什么,这样我们才能更有帮助。