c++ - GCC STL 边界检查

如何为 operator[] 和迭代器启用边界检查?

最佳答案

您可以通过使用 -D_GLIBCXX_DEBUG 编译来激活运行时迭代器和边界检查。另请注意,除了 operator [] 之外,随机访问容器还提供始终检查边界的 at() 操作。

引用资料:

GCC STL Debug模式: 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()

https://stackoverflow.com/questions/5594686/

相关文章:

c++ - 对于所有对象类型 T,sizeof(T) >= alignof(T) 是否总是如此?

c++ - 在 getter 函数中返回 const 引用或拷贝?

c++ - COM(C++) 编程教程?

c++ - 我们可以有一个虚拟静态方法吗? (c++)

c++ - std::vector 是 `user-defined type` 吗?

c++ - 当两个链接的 static_cast 可以完成它的工作时,为什么我们在 C++ 中有 r

c++ - 存储未初始化的 STL vector ?

c++ - 打包结构是可移植的吗?

c++ - 我应该使用 cstdint 吗?

c++ - 从多个线程使用 stdlib 的 rand()