【发布时间】:2020-01-23 11:19:54
【问题描述】:
我在 stackoverflow 和 codereview 上阅读了很多答案,这些答案说我们不应该在 C++ 中使用 C 样式数组。它的原因是什么? 如果我使用 std::Array 而不是 C 风格的数组,它会影响速度/性能吗?
在我的组织中,整个应用程序都是用 C++ 编写的。但是只使用了 C 风格的数组。
【问题讨论】:
-
理论上,在 C 风格的数组上使用
std::array不会受到任何惩罚,实际上我也对此表示怀疑(只要你不通过数组 按值 ,std::array是可能的,但对于 C 样式的数组是不可能的)。 -
很高兴看到我的金色“阵列”徽章得到了一些使用??
-
@Someprogrammerdude 在 C 语言中,我可以在运行时创建可变长度数组,例如
int arr[n]。 std::array 可以吗? -
@KamalPancholi VLA 在标准 C++ 中是不允许的。
-
@KamalPancholi 为此你有
std::vector。