c++ - 使用 C++ 的 C 样式数组?
问题描述
我已经阅读了许多关于 stackoverflow 和 codereview 的答案,这些答案说我们不应该在 C++ 中使用 C 风格的数组。它的原因是什么?如果我使用 std::Array 而不是 C 样式数组,它会影响速度/性能吗?
在我的组织中,整个应用程序都是用 C++ 编写的。但是只使用了 C 风格的数组。
解决方案
不,它不会对性能产生影响。使用 std::array 代替类 C 数组有两个原因:
- 方法 at() 允许通过边界检查通过索引获取元素。请注意,运算符 [] 没有边界检查。
- 有限的指针算术。与类似 C 的阵列相比,在脚上射击要困难得多。
- 与其他 std 容器的行为相同,例如 begin()、end()、size() 方法,无需处理两个变量:指针和大小。因此,您可以实现一种可以与数组和其他容器一起使用的算法。
感谢 Thomas Sablik 在评论中的澄清。
推荐阅读
- memory - 如何知道地址是否为 64 位对齐?
- c - 指针取消引用 balagurusamy
- android - 无论登录用户如何,都发送相同的响应
- asp.net-core - 超链接未加载页面但显示已选中
- reactjs - 动态创建复选框并为其添加更改处理程序:Semantic-ui-react + React
- angular - IONIC 3 - IOS:[错误] Access-Control-Allow-Headers 不允许请求标头字段 Content-Type
- kubernetes - 是否可以从 IBM APIConnect 调用 MPGW?
- ios - 如果在打开谷歌地图或打开电话栏时,LaunchScreen 中的标签显示不正确
- ios - iOS 使用 firebase 订阅 server_to_server 通知
- html - 如何使li标签在inner a标签的状态栏中显示url