了解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++中存储在数组中的元素数量的主要内容,如果未能解决你的问题,请参考以下文章