知道VC ++中存储在数组中的元素数量

时间:2012-05-24 14:12:19

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

有没有办法在不使用for循环的情况下在VC ++中找到数组中的元素数。

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

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

只需使用 std::vector ,即可为自己节省大量问题和记账。
它为您提供了普通数组所能提供的所有功能,但它提供了许多有用的成员函数,例如size(),可以为您记录元素的数量等。