2016-02-21 10 views
5

つまり、マップからキーへのポインタを格納するのは安全ですか?または、マップが存続期間中にキーをコピーして移動することが可能なので、既存のポインタを無効にできますか?std :: map:挿入されたキーをコピーして移動できますか?

ドキュメントには、「反復子の有効性:変更なし」と表示されています。それは私の質問への答えは "いいえ、彼らはコピーできない、動かされない"という意味ですか?

+1

どのドキュメントですか? –

答えて

7
std::map

コンテナテンプレートは、要素がマップから消去されるまで、コンテナ要素にイテレータと参照が無効にされることはないことを意味ノードベース容器を提供します。したがって、マップが生きていて要素がその中に残っている限り、要素キーアドレスを第三者に渡すことができます。

+0

清潔にしていただきありがとうございます。これがドキュメントでどこに指定されているか偶然知っていますか? – Chris

+0

インプリメンテーションがインデックスベースのイテレータを使用して妥当性は保証されていますが、実際の要素はメモリ内を移動することは無効ですか?そうでない場合、これはどこに記載されていますか? – 6502

+0

@Chris:[associative.reqmts]/9。 –

関連する問題