zoukankan      html  css  js  c++  java
  • 获取数组字符串的长度(需要修改)

    1. 算术表达式

    #include <iostream>
     
    int main() {
        int arr[4];
        std::cout << sizeof( arr ) / sizeof( arr[0] ) << std::endl; // 输出4
    }

    或者

    #include <iostream>
     
    int main() {
        int arr[4];
        std::cout << sizeof( arr ) / sizeof( *arr ) << std::endl;  // 输出4
    }

    2. 函数模板参数自动推断:

    #include <iostream>
     
    template <typename T, size_t N>
    inline size_t Count(  T ( & arr )[N] ) {
        return N;
    }
     
    int main() {
        int arr[4];
        std::cout << Count( arr ) << std::endl;  // 输出4
    }

    3.标准C++模板库:

    #include <type_traits>  // 注意包含此头文件.
    #include <iostream>
     
    int main() {
        int arr[4];
        std::cout << std::extent<decltype( arr ), 0>::value << std::endl; // 输出4
    }

    4.模板特化与自动类型推断:

    include <iostream>
    template <typename T>
    class ComputeSize;
     
    template <typename T, size_t N>
    class ComputeSize<T[N]> {
    public
        static const size_t value = N;
    };
     
    int main() { 
        int arr[4]; 
        std::cout << ComputeSize<decltype( arr )>::value << std::endl; // 输出4
    }

    5. Visual C++编译器预定义宏:

    #include <cstdlib>
    #include <iostream>
     
    int main() {
        int arr[4];
        std::cout << _countof( arr ) << std::endl;  // 输出4.
    }

    6. boost库

    #include "boost/range.hpp"
    #include <iostream>
     
    int main(){   
        int arr[4];   
        std::cout << boost::size( arr ) << std::endl; // 输出4
    }

    上面的方法适用于静态数组,动态的数组(new[])是无法获取元素个数的。

    上面的代码,自己可以编译运行看看,如果手上没有编译器测试上面的代码或者编译失败,可以在下面的页面上编译运行(最新版本的Visual C++):

    http://webcompiler.cloudapp.net/

     

    1.  #include“string.h”

      strlen(a)求字符数组的大小是

    2. sizeof(a)/sizeof(a[0]);这种基本上万能

  • 相关阅读:
    SQL获得表的行数
    sql server2008用ip远程连接
    sql设置字段默认值
    用c# 实现设计器 DesignSurface<转>
    DSOFramer.ocx 控件使用<转>
    浅谈JavaScript编程语言的编码规范<转>
    主要是取得2個Collection 裏,相同、相異、聯集的部份<转>
    VS2008无法切换到视图设计器
    使用HttpModule来禁用Web表单重复提交<转>
    WebIM组件设计<转>
  • 原文地址:https://www.cnblogs.com/h694879357/p/11762538.html
Copyright © 2011-2022 走看看