这两种说法有啥区别?

Posted

技术标签:

【中文标题】这两种说法有啥区别?【英文标题】:What's difference between these two statements?这两种说法有什么区别? 【发布时间】:2020-01-22 21:29:07 【问题描述】:

这个问题似乎很简单,但我找不到任何答案。那么int Array[10]array<int, 10> Array有什么区别呢?

【问题讨论】:

【参考方案1】:

int Array[10] 是一个 c 风格的数组声明,它包含原始内存,如果您想对数组进行操作,则必须编写自己的函数。

array<int, 10> Array 是使用 std::array 类的 C++ 样式数组声明,该类是 STL container

后面提供了很多预定义的方法来对数组进行操作,例如找出数组中有多少元素,你只需要说Array.size()。但是,对于前者,您可能必须编写自己的函数来遍历数组以找出大小。

【讨论】:

【参考方案2】:

在 C++ 中,有多种方法可以创建数组。 int Array[10]; 将创建一个类似于 C 数组的数组。这意味着它存在很多固有的内存问题。 array<int, 10> Array; 是前一个数组的 C++ 包装,消除了内存问题。此外,C++ 版本更擅长进行迭代、边界检查和其他一些次要功能。虽然他们最终都会做同样的事情,除非你正在做一些特别需要 C 数组的事情,否则我会选择 C++,这样可以省去很多麻烦。

【讨论】:

您可能想详细说明大量内存问题

以上是关于这两种说法有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

这两种符号有啥区别?

这两种方法有啥区别?

这两种类型的闭包有啥区别?

这两种方法有啥区别

这两种声明数组的方式有啥区别? [复制]

Javascript中这两种要求有啥区别?