如何C++得到数组的非空元素个数?
时间: 2023-11-03 17:04:21 浏览: 297
在 C++ 中,数组是一种固定大小的数据结构,一旦声明,它的大小就不能改变。如果要得到数组的非空元素个数,需要在程序中记录数组的长度或者使用标记来判断哪些元素是非空的。
以下是两种常用的方法:
1. 记录数组长度
在定义数组时,可以同时定义一个变量来记录数组的长度。例如:
```cpp
int arr[5]; // 数组长度为 5
int count = 0; // 记录非空元素个数
for (int i = 0; i < 5; i++) {
if (arr[i] != 0) {
count++;
}
}
```
在上述代码中,数组 `arr` 的长度为 5,变量 `count` 用来记录非空元素的个数。遍历数组时,如果发现数组元素不为 0,则将计数器加一。
2. 使用标记
在定义数组时,可以使用一个额外的数组来标记哪些元素是非空的。例如:
```cpp
int arr[5]; // 数组长度为 5
bool flag[5] = {false}; // 标记数组,初始值为 false
arr[0] = 1; // 第一个元素非空
flag[0] = true;
int count = 0; // 记录非空元素个数
for (int i = 0; i < 5; i++) {
if (flag[i]) {
count++;
}
}
```
在上述代码中,数组 `flag` 用来标记哪些元素是非空的,初始值为 false。当数组元素非空时,将对应的标记位置为 true。遍历标记数组时,如果发现标记为 true,则将计数器加一。
需要注意的是,如果数组元素类型为指针或类对象,判断元素是否为空时需要使用相应的空指针或空对象来进行判断。
阅读全文