21xrx.com
2024-12-27 20:57:57 Friday
登录
文章检索 我的文章 写文章
如何在C++中返回数组的长度?
2023-07-05 09:57:37 深夜i     --     --
C++ 返回 数组 长度

在C++中,返回数组的长度可以通过多种方法实现。下面将介绍其中三种最常用的方法。

方法一:使用 sizeof 运算符

使用 sizeof 运算符,可以快速获取数组所占用的字节数,从而算出数组的长度。具体代码如下:


int arr[5] = 4;

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

cout << "数组长度为:" << len << endl;

运行结果:


数组长度为:5

这里需要说明的是,sizeof(arr) 表示整个数组所占用的字节数,sizeof(arr[0]) 表示数组中一个元素所占用的字节数,除以后的结果即为数组的长度。

方法二:定义一个结构体来保存数组和长度

使用结构体将数组和长度打包起来,可以使得数组的长度得到更好的封装和表现。具体代码如下:


#include <iostream>

using namespace std;

struct Array {

  int *arr;

  int len;

};

Array initArray(int *arr, int len)

  Array result;

  result.arr = arr;

  result.len = len;

  return result;

int main() {

  int arr[5] = 5;

  Array array = initArray(arr, 5);

  cout << "数组长度为:" << array.len << endl;

  return 0;

}

运行结果:


数组长度为:5

这种方法可以暴露出数组的更多信息,也可以通过自定义结构体的方法来实现更复杂的逻辑和表达需求。

方法三:使用模板参数推导

使用模板参数推导,通过编译器自动推导数组的长度,可以让代码更加简洁高效。具体代码如下:


#include <iostream>

using namespace std;

template <typename T, size_t N>

size_t getArrLen(T(&)[N])

  return N;

int main() {

  int arr[5] = 3;

  cout << "数组长度为:" << getArrLen(arr) << endl;

  return 0;

}

运行结果:


数组长度为:5

在 getArrLen 函数中,模板参数 T 表示数组中元素的类型,N 表示数组的长度。通过这种方式,就可以很方便地获取数组的长度了。同时也可以根据不同的需求,自定义不同类型的模板函数,实现更加灵活的编程方式。

总结

以上是三种常用的获取数组长度的方法,在实际编程中,可以根据不同的场景选择不同的方式。无论哪种方式,都可以实现快速、简洁地获取数组的长度。

  
  

评论区

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