有没有办法在不使用for循环的情况下在VC ++中找到数组中的元素数。
让我们说数组有16个元素;
int a[16];
a={1,2,3,4,5,6,7};
现在,如果我想让长度等于7& NOT 16(我的意思是我想知道存储在这个数组中的元素数量,而不是获取数组中的空格数)。有没有类似于我们在C#中的length()
函数的方法?
我在VS2008上使用VC ++。
提前致谢。
答案 0 :(得分:4)
对于内置数组,唯一的方法是让你自己跟踪这个“长度”。没有自动的方法。
然而,更好的方法是使用std::vector<int>
。它会自动跟踪当前元素数量(“大小”)和可以容纳的元素数量,而无需重新分配数组(“容量”)。
答案 1 :(得分:2)
不,这是不可能的,如果你没有填满整个数组,剩余的元素将根据初始化时的类型填充值。
请注意,C / C ++不对数组进行边界检查,如果数组元素也没有跟踪数字,该语言只是为您提供了一个连续的内存块,您有责任使用它如何以及是否使用它。以及存储在数组中的元素数量。
只需使用 std::vector ,即可为自己节省大量问题和记账。
它为您提供了普通数组所能提供的所有功能,但它提供了许多有用的成员函数,例如size()
,可以为您记录元素的数量等。