C ++のコンテナ、、vector
...deque
は、コンテナ要素へのアクセスat(index)
に加えて、アクセサ関数を提供します。operator[index]
このメンバー関数とメンバー演算子関数operator[]の違いは、deque :: atは、out_of_range例外をスローすることにより、要求された位置が範囲外であるかどうかを通知することです。
C ++コードでは範囲外の可能性のある要素にアクセスすることは意味がないため、コードでこの関数が必要になったことがありません。コードは常に正しいインデックスにアクセスするように記述されています(または、インデックスを一致させることができない場合に意味のあるエラー/例外を生成します)。
at()
本番コードで使用されている実際の例(おそらく、いくつかのコンテキストを追加するため、いくつかのオープンソースプロジェクトから)に興味があります。
at()
たぶん誰かが、使用が理にかなっているアルゴリズム問題の例をあげることができます。
注:最近、いくつかの単体テストコードで使用しました。ここでは、インデックスチェックコードを追加することは問題の価値があるとは見なされず、によってスローされるout_of_range例外at()
は、テストが失敗した場合に備えて十分なinfo+contextと見なされます。
注:ildjarnによるこの回答について-私はこれについて議論を始めたり、戦争についてコメントしたりしたくありません。私は「ポジティブ」な発見、つまりそれが使用された具体的な例に興味があります。ありがとうございました。