21xrx.com
2024-12-23 02:36:09 Monday
登录
文章检索 我的文章 写文章
C++中如何获取数组长度?
2023-06-22 20:30:11 深夜i     --     --
C++ 数组 长度 获取

在C++中,获取数组的长度是一个常见的操作。虽然在使用数组的过程中,我们一般都会知道数组的长度,但有时候我们需要在代码中动态地获取数组长度。本文将介绍几种获取数组长度的方法。

方法一:使用sizeof运算符

sizeof运算符可以获取数组的字节大小,通过除以每个元素的字节大小,就可以计算出数组的长度。例如:


int arr[] = 1;

int len = sizeof(arr) / sizeof(arr[0]);

这里arr是一个整型数组,sizeof(arr)将返回该数组所占用的字节数,sizeof(arr[0])将返回数组中每个元素所占用的字节数。将二者相除即可得到数组的长度。

需要注意的是,在这种方法中,数组必须是静态分配的,即在定义时就已经确定了大小。对于动态数组,这种方法不适用。

方法二:使用模板函数

C++中可以使用模板函数来获取数组的长度。示例代码如下:


template <typename T, size_t N>

size_t getArrayLen(T (&arr)[N])

  return N;

int arr[] = 5;

int len = getArrayLen(arr);

这里使用了模板函数,函数的参数是一个数组的引用,通过模板特化得到数组的大小。这种方法同样适用于静态数组和动态数组。

方法三:使用标准库函数

C++标准库中提供了一个名为std::extent的函数模板,可以获取数组的大小。示例代码如下:


int arr[] = 4;

int len = std::extent<decltype(arr)>::value;

这里使用了decltype关键字来推断数组的类型,然后调用extent函数模板得到数组的大小。需要注意的是,C++11标准中新增了std::size函数,可以直接获取数组的大小。

综上所述,C++中获取数组长度有多种方法,可以根据实际情况选择合适的方式。无论哪种方法,都可以很方便地获取数组的长度,提高代码的可维护性和可读性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复