了解VC++中存储在数组中的元素数量

Posted

技术标签:

【中文标题】了解VC++中存储在数组中的元素数量【英文标题】:Knowing the number of elements stored in an array in 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--但不能事后赋值。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于了解VC++中存储在数组中的元素数量的主要内容,如果未能解决你的问题,请参考以下文章

了解数组,学会数组

了解数组,学会数组

了解数组,学会数组

对 ksh 中数组中的每个元素执行一个函数

你需要了解的JS_API

对象数组如何存储在内存中?