0

イテレータを使用して unordered_map のすべての要素をループするコードがありますが、そのループ内には、マップ内の特定の要素にイテレータを格納する他のプロセスがいくつかあり、通常は多くのジャンプを行いますが、反復は行いません (最も外側の反復子)。

unordered_map::const_reference実際に反復していない場合は、要素にa を使用する方が適しているように思えました。これは本当ですか?私が const_references を使用することを妨げている唯一のことは、私の簡単なグーグル検索から、それらが大衆によって非常に使用されていないか、少なくともほとんど議論されていないように見えることです.

4

1 に答える 1

1

Const の正確性は、C++ プログラミングの鍵の 1 つです。
プログラムを作成し、事後に const の正確性を追加することは非常に困難です (コードをカスケードするため) 事前に行う必要があります。

そのため、イテレーターよりも const_iterators を使用することをお勧めします。しかし、すべてのものと同様に、それは判断の呼びかけです。

個人的には、コンテナ内の要素を変更しない場合は const_iterators を使用しますが、オブジェクトで const 以外のメソッドを呼び出す可能性がある場合は、イテレータを使用する必要があります。

于 2010-08-22T12:00:46.820 に答える