• C/C++中如何获取数组的长度(宏&模板)


    C、C++中没有提供 直接获取数组长度的函数。对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用  sizeof(array) / sizeof(array[0]) 

    在C语言中习惯上在 使用时都把它定义成一个宏,比如

    #define GET_ARRAY_LEN(array, len) { len = sizeof(array)/sizeof(array[0]);}

     代码实例:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    
    #define GET_LEN(array, len) { len = sizeof(array)/sizeof(array[0]);}
    
    int main()
    {
        int list[] = {1,2,3,4,5,6,7,8,9,0};
        int length;
        GET_LEN(list, length);
        printf("%d
    ", length);
        return 0;
    }

    在C++中则可以使用模板 技术定义一个函数,比如:

    template <class T>
    int getArrayLen(T&array)
    {
        return sizeof(array) / sizeof(array[0]);
    }

     代码实例:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    
    template <class T>
    int getArrayLen(T&array)
    {
        return sizeof(array) / sizeof(array[0]);
    }
    int main()
    {
        int list[] = {1,2,3,4,6,5,7,8,9,0};
        int length = getArrayLen(list);
        printf("%d
    ", length);
        return 0;
    }

    这样对于不同类型的数 组都可以使用这个宏或者这个函数来获取数组的长度了。

    参考链接:http://blog.csdn.net/bopzhou/article/details/6063163/

  • 相关阅读:
    R 语言中的数据结构
    minimap2 长reads比对工具
    seqtk 一款快速处理fasta/fastq 文件的小程序
    Eclipse R语言开发环境搭建 StatET插件
    Windows 安装R
    HttpClient 发送请求和参数
    Java Base64编码和解码
    docker 安装
    docker
    inotify 监控文件系统操作
  • 原文地址:https://www.cnblogs.com/tanrong/p/8516948.html
Copyright © 2020-2023  润新知