2012-05-24 25 views
1

有没有什么方法可以在不使用for循环的情况下在VC++中查找数组中元素的数量。知道在VC++数组中存储的元素的数量

让我们说数组有16个元素;

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

现在我,如果我想要得到的长度等于7 &不是16(我的意思是我想知道存储在该数组中,而不是让阵列中的空格数的元素的数量) 。有没有类似于C#中的length()函数? 我在VS2008上使用VC++。

在此先感谢。

+0

没有内置的方式。你需要在自己的某个地方存储号码,或者存储一些结束指示标志。 – BoBTFish

+3

您的代码不合法​​C++开始。你可以初始化数组,即 - 'int a [16] = {1,2,3,4,5,6,7}' - 但是在事实之后你不能分配它。 –

回答

4

对于内置阵列的数量,做到这一点的唯一方法是让你自己跟踪这个“长度”。没有自动的方式。

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

2

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

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

只需使用std::vector即可为您节省很多问题和簿记。
它提供了一个一切正常阵列将但具有许多有用的成员函数等size()其中做簿记为您关于元素等

相关问题