c++ 获取数组的已使用长度
时间: 2024-01-07 21:05:04 浏览: 34
在 C++ 中,数组是一种静态的数据结构,一旦定义长度就不能改变,因此数组的已使用长度和定义时指定的长度是相等的。如果想要知道数组的长度,可以使用 sizeof 操作符,例如:
```c++
int arr[10];
int len = sizeof(arr) / sizeof(arr[0]); // 获取数组的长度
```
在这个例子中,我们定义了一个包含 10 个 int 类型元素的数组 arr,使用 sizeof(arr) 可以获取整个数组占用的内存空间大小,使用 sizeof(arr[0]) 可以获取一个数组元素的内存空间大小,将两者相除即可得到数组的长度 len。
相关问题
c++ 获取静态数组的已使用长度
在 C++ 中,静态数组是一种在编译时就确定大小的数组,它的长度是固定的,因此可以使用常量来表示已使用长度。另外,C++11 引入了 std::extent 模板类,可以用来获取静态数组的长度。以下是两种方法的示例:
```c++
int arr[10] = {1, 2, 3, 4, 5}; // 只初始化了前 5 个元素
const int used_len = 5; // 声明已使用长度为 5
// 方法一:使用常量表示已使用长度
for (int i = 0; i < used_len; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
// 方法二:使用 std::extent 获取数组长度
for (int i = 0; i < std::extent<decltype(arr)>::value; ++i) {
if (i < used_len) {
std::cout << arr[i] << " ";
} else {
std::cout << "0 ";
}
}
std::cout << std::endl;
```
在这个示例中,我们定义了一个包含 10 个 int 类型元素的静态数组 arr,但只初始化了前 5 个元素。使用方法一,我们可以使用常量 used_len 来表示已使用长度,然后只遍历前 used_len 个元素。使用方法二,我们使用 std::extent<decltype(arr)>::value 来获取数组的长度,然后将数组中未使用的部分填充为 0。
c++ 获取数组长度
在C/C++中,可以通过几种方法获取数组的长度。其中一种方法是使用sizeof(array) / sizeof(array),这将返回数组元素的个数。另一种方法是使用指针运算,通过计算数组的首尾指针之间的距离来得到数组的长度。例如,在C++中,可以使用end(arr)-begin(arr)来获取数组的长度。此外,还可以使用模板来定义一个求数组长度的函数,如示例代码所示。