7

私は持っていstd::map<std::string, myStruct>ます。myStructエントリのアドレスを返すのは安全ですか?
私のエントリは削除されないと確信していますが、他のエントリを追加することはできます。

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

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

2 に答える 2

8

安全。削除された要素へのイテレータ/参照/ポインタのみが無効化される
場合。std::map

参照:
C++03 標準 23.1.2/8:

消去された要素への反復子と参照のみが無効化されます

于 2012-08-31T12:31:13.347 に答える
2

これは、コンテナーに割り当てられたスペースに関するものではなく、含まれているオブジェクトのアドレスです。

ところで、あなたが何をしようとしているのか、そしてあなたの目標は何なのかを説明してください。

于 2012-08-31T12:30:22.283 に答える