首页 > 解决方案 > 使用 C++ 的 C 样式数组?

问题描述

我已经阅读了许多关于 stackoverflow 和 codereview 的答案,这些答案说我们不应该在 C++ 中使用 C 风格的数组。它的原因是什么?如果我使用 std::Array 而不是 C 样式数组,它会影响速度/性能吗?

在我的组织中,整个应用程序都是用 C++ 编写的。但是只使用了 C 风格的数组。

标签: c++carrays

解决方案


不,它不会对性能产生影响。使用 std::array 代替类 C 数组有两个原因:

  • 方法 at() 允许通过边界检查通过索引获取元素。请注意,运算符 [] 没有边界检查。
  • 有限的指针算术。与类似 C 的阵列相比,在脚上射击要困难得多。
  • 与其他 std 容器的行为相同,例如 begin()、end()、size() 方法,无需处理两个变量:指针和大小。因此,您可以实现一种可以与数组和其他容器一起使用的算法。

感谢 Thomas Sablik 在评论中的澄清。


推荐阅读