1

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

假设数组有 16 个元素;

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

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

提前致谢。

4

2 回答 2

4

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

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

于 2012-05-24T14:14:25.180 回答
2

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

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

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

于 2012-05-24T14:13:43.463 回答