21xrx.com
2024-12-22 23:29:57 Sunday
登录
文章检索 我的文章 写文章
C++如何获取数组大小?
2023-07-01 20:20:59 深夜i     --     --
C++ 数组 大小 获取

在 C++ 中,获取数组大小的方法有多种。下面就介绍几种常用的方法。

1.使用 sizeof() 函数获取数组大小

这是最常用的获取数组大小的方法。sizeof() 函数返回的是数组占用的内存空间大小(单位为字节),因此可以通过其返回值除以数组单个元素的大小来得到数组元素个数。

例如,假设有一个 int 类型的数组 arr,其长度为 10,可以使用下面的代码来获取数组大小:

int arr[10];

int size = sizeof(arr) / sizeof(int);

其中,sizeof(arr) 表示数组占用的内存空间大小(单位为字节),而 sizeof(int) 则表示 int 类型占用的内存空间大小(单位为字节)。将这两个值相除就可以得到数组的元素个数。

2.使用数组模板获取数组大小

C++11 引入了一个新的数组模板,可以方便地获取数组的大小。这个模板叫做 std::extent,在头文件 中定义。下面是使用该模板获取数组大小的代码示例:

#include

int arr[10];

int size = std::extent ::value;

其中,decltype(arr) 表示获取 arr 的类型,而 std::extent ::value 则表示获取 arr 的维度(即元素个数)。

需要注意的是,std::extent 可以用于多维数组,但要在每个维度上分别调用该模板得到元素个数。

3.使用数组引用获取数组大小

另一种方法是通过数组引用来获取数组大小。例如,可以使用下面的代码来获取一个数组的大小:

int arr[10];

int (&arrayRef)[10] = arr;

int size = sizeof(arrayRef) / sizeof(int);

其中,int (&arrayRef)[10] = arr 表示定义了一个 int 类型的数组引用 arrayRef,其大小为 10。然后,我们可以使用 sizeof() 函数计算出引用的大小(单位为字节),再除以 int 类型占用的空间大小(单位为字节),即可得到数组大小。

总结:

以上就是 C++ 中获取数组大小的几种常用方法。需要注意的是,这些方法除了第二种方法需要 C++11 的支持外,其他方法都可以在早期版本的 C++ 中使用。我们可以根据实际情况选择合适的方法来获取数组大小。

  
  

评论区

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