【问题标题】:Knowing the number of elements stored in an array in VC++了解VC++中存储在数组中的元素数量
【发布时间】:2012-05-24 14:12:18
【问题描述】:

有没有什么方法可以不使用for循环在VC++中查找数组中的元素个数。

假设数组有 16 个元素;

int a[16];
a={1,2,3,4,5,6,7};

现在,如果我想让长度等于 7 而不是 16(我的意思是我想知道存储在这个数组中的元素数,而不是获取数组中的空格数)。有什么类似于我们在 C# 中的length() 函数的方法吗? 我在 VS2008 上使用 VC++。

提前致谢。

【问题讨论】:

  • 没有内置方式。您需要自己将数字存储在某个地方,或者存储一些结束指示标志。
  • 您的代码从一开始就不是合法的 C++。可以初始化数组,即--int a[16] = {1,2,3,4,5,6,7}--但不能事后赋值。

标签: c++ arrays visual-studio-2008 visual-c++


【解决方案1】:

对于内置数组,这样做的唯一方法是让您自己跟踪这个“长度”。没有自动的方法。

不过,更好的方法是使用std::vector<int>。它会自动跟踪当前的元素数量(“大小”)和无需重新分配数组即可容纳的元素数量(“容量”)。

【讨论】:

    【解决方案2】:

    不,这是不可能的,如果你不填充整个数组,剩余的元素将根据初始化时的类型填充值。

    请注意,C/C++ 不会对数组进行边界检查,也不会跟踪数组元素的数量,该语言只是为您提供您要求的连续内存块,您负责如何使用以及是否使用它。以及存储在数组中的元素数量。

    只需使用 std::vector,您就可以省去很多麻烦和记账。
    它为您提供了普通数组所能提供的所有功能,但还提供了许多有用的成员函数,例如 size(),它们会为您记录元素数量等。

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 2017-10-25
      • 2016-09-05
      • 2012-11-19
      • 1970-01-01
      • 2019-08-16
      相关资源
      最近更新 更多