front()
が参照を返し、コンテナが空の場合は何が得られますか、未定義の参照ですか?それぞれfront()
の前にempty()
を確認する必要があるのですか?空の標準コンテナのfront()から何を取得しますか?
37
A
答えて
41
未定義の動作 - front()を呼び出す前に、コンテナにempty()(コンテナが空であるかどうかを調べる)を使用しているかどうかを確認する必要があります。
12
未定義の動作が発生します。
(0)で範囲チェックを使用します。これが失敗すると、out_of_range
例外が発生します。
1
未定義の動作あなたは常にあなたのコンテナが、このインスタンスのフロント()を呼び出す前に、空でないことを確認する必要がありました
1
。 安全なガードとしてempty()を呼び出すのは良いです。
もちろん、あなたのプログラムの設計によっては、常に空でないコンテナを持つことは、あなたがfront()を呼び出すたびにempty()への呼び出しを禁止して保存できるようにする不変のステートメントになります。 (またはコードの少なくとも一部)
しかし、上記のように、プログラムの不確定な動作を避けたい場合は、それを強く不変なものにします。
2
はい、フロントを使用する代わりに、グラハムのように 'at'を使用できます。
しかし、(0)はベクトル、デキュー、および他のものではないリスト、キュー、スタックの一部のコンテナでのみ利用可能です。このような場合には、「空の」小切手の安全性に転じなければなりません。
関連する問題
- 1. C#でコマンドラインコールから標準出力を取得しますか?
- 2. URL標準オブジェクトからパラメータを取得
- 3. Pythonのdifflibから標準のgnu diff出力を取得しますか?
- 4. モデル空間から、OpenGL ES 2.0の標準座標空間への座標を取る最も速い方法
- 5. コンテナの座標空間から子の座標に座標を変換する
- 6. リストのエンティティから標準形を取得する
- 7. subprocess.check_outputから標準出力のみを取得する
- 8. QMessageBoxの標準ボタンからシステムデフォルトのラベルを取得
- 9. Eigenの実装は標準コンテナに依存しますか?
- 10. オブジェクトは標準のC++コンテナから自身を消去できますか?
- 11. C++ 03標準コンテナのスタックアロケータ
- 12. ETSI-M2M標準とOneM2M標準の違いは何ですか?
- 13. Visual Studio:標準フォント...ファイルを取得していますか?
- 14. 標準のユニコードフォントとは何ですか?次のオペレーティングシステム用の標準ユニコードフォントは何
- 15. 標準例外からCOMplusExceptionCodeを取得する方法
- 16. 標準から情報を取得するには?
- 17. 「標準」からオフスクリーンプレーンサーフェイスを取得する方法IDirect3D9Surface
- 18. CopyAssignable/CopyConstructibleを必要としない標準コンテナは何ですか?
- 19. Linuxのデスクトップから起動したプログラムのデフォルトの標準入力と標準出力は何ですか?
- 20. 名前空間「標準」とは何ですか?
- 21. リアルタイムウェブの標準は何ですか?
- 22. 会社名(非標準)パンダから株式ティッカーを取得
- 23. .NET標準ライブラリからWindowsシステムディレクトリを取得
- 24. boost :: smart_ptrを標準コンテナで使用できますか?
- 25. 標準からunordered_set
- 26. コンテナADT標準操作
- 27. ピンチジェスチャーの座標を標準のUIScrollViewから取得するにはどうすればよいですか?
- 28. matplotlibの輪郭から座標を取得しますか?
- 29. JSONで空のオブジェクトを定義する標準とは何ですか
- 30. Javaの標準入力から標準出力へのGZIP
また、empty()を使用することもできます。 –
私は彼らがSTLを設計し指定したときに、より具体的になりたいと思っています。私は、多くのC++移植の問題やバグが、あまりにも良いプログラマによって悪用されたこれらの「未定義の振る舞い」のプラットフォーム固有の実装によって引き起こされたと考えています。 –
UBを作成するという決定は、通常、代替案にいくらかのオーバーヘッドがあったことを意味します。この場合は、例外をスローします.C++は常に回避しようとしています。 –