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

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

【问题讨论】:

    标签: c++ arrays stl


    【解决方案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++,这样可以省去很多麻烦。

      【讨论】:

      • 您可能想详细说明大量内存问题
      猜你喜欢
      • 1970-01-01
      • 2012-05-25
      • 2014-07-16
      • 2010-11-03
      • 1970-01-01
      相关资源
      最近更新 更多