45

operator[]イテレータの境界チェックを有効にするにはどうすればよいですか?

4

2 に答える 2

72

を使用してコンパイルすることにより、ランタイムイテレータと境界チェックをアクティブ化できます-D_GLIBCXX_DEBUG。また、ランダムアクセスコンテナは、at()に加えて常に境界チェック操作を提供することに注意してくださいoperator []

参照:

GCC STLデバッグモード:http: //gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode

at()操作:std::vector::at()std::deque::at()およびstd::array::at()

于 2011-04-08T11:59:06.860 に答える
1

operator[]特定のクラスに対してをオーバーロードする必要があります。既存のSTLコンテナを使用する場合、at()関数は境界がチェックされたバージョンのoperator[].

于 2011-04-08T12:00:10.603 に答える