c++ - 安全使用 C++ STL 的规则/指南

标签 c++ exception c++11 stl containers

我正在学习 C++ STL,但不确定的一件事是如何安全地使用 STL。

例如一件事,我经常发现自己正在使用容器,而没有执行 if (!container.empty())。看似微不足道的事情,但却是错误的根源。

是否有关于如何安全使用 STL 的任何规则或指南?

编辑:到目前为止,我找到了一份这样的指南 JSF Air Vehicle - C++ Coding Standards - Joint Strike Fighter,但它现在似乎已经过时(或者至少没有更新,尽管大多数规则适用于今天)

最佳答案

您可以阅读 Effective STL。

您通常应该编写无需检查即可工作的代码,而不是检查空容器。

许多实现都有 Debug模式,可以标记使用错误。了解您的库提供的内容。还有一些接口(interface)被指定为已检查,例如 .at() 而不是索引运算符。

关于c++ - 安全使用 C++ STL 的规则/指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151097/

相关文章:

c++ - 目标文件中 undefined reference - 如何找到哪个库包含它?

c++ - 为什么 `std::string::find()` 在失败时不返回结束迭代器?

c++ - boost 是否具有比 STL 更简单的集合操作数据类型?

python - 在Python中使用break进入异常错误处理可以吗?

c++ - 使用 placement new 创建指向静态内存缓冲区的静态 const 指针

c++ - 我怎样才能让编译时 const 对象配置有可变长度的数据 block ?

C++包含文件浏览器

JAVA:返回值对 ArrayIndexOutOfBoundsException 异常意味着什么?

c# - 用户定义的非法异常

c++ - 为什么 `std::reference_wrapper` 在 c++17 中弃用并在 c++20 中删除?