Bootstrap

C++获取数组的长度

使用模板template。

1、求数组长度的模板函数:

template<class T>
int length(T& arr)
{
    //cout << sizeof(arr[0]) << endl;
    //cout << sizeof(arr) << endl;
    return sizeof(arr) / sizeof(arr[0]);
}

2、完整测试代码: 

#include<iostream>
using namespace std;

template<class T>
int length(T& arr)
{
    //cout << sizeof(arr[0]) << endl;
    //cout << sizeof(arr) << endl;
    return sizeof(arr) / sizeof(arr[0]);
}

int main()
{
    //整型数组 
    int arr[] = { 1,5,9,10,9,2 };
    cout<<length(arr)<<endl;
    
    //字符串数组 
    string str[]={"a","bd","as","a",""};	
    cout<<length(str);
    
    return 0;
}

 3、结果:

参考:https://www.cnblogs.com/liutongqing/p/7282528.html

;