0

Type&関数がコンテナー内の要素の参照 (つまり ) を返すことは安全boost::unordered_mapですか?

もしそうできるなら、なぜですか?参照型はポインターと同じように機能すると思います (間違っている場合は修正してください)。コンテナー内の要素のメモリ アドレスは時間の経過と共に変化する可能性があるため、参照された場合は以前のものではなくなります。私は正しいですか?

可能であれば、コンテナー内の要素のポインターを返すことができますか?

これが他の人のコードで発生するのを見たので、この質問がありますが、問題なく動作します...

4

1 に答える 1

2

場合によります。

コンテナーが変更されない限り、まったく問題ありません。コンテナー変更された場合、各コンテナー クラスには、既存の要素への参照がいつ無効になるかについての独自のルールがあります。

C++ 標準は、ルールを見つけるための公式の方法ですが、ほとんどの場合、http://cppreference.comなどの適切なオンライン リファレンス (しゃれは意図していません) を安全に読むことができます。たとえば、std::vector::insert後続のすべての要素への参照が確実に無効になり、すべての要素への参照が無効になる可能性があることがわかります。

于 2013-03-02T17:07:46.180 に答える