zoukankan      html  css  js  c++  java
  • Item06.数组形参 Array Formal Arguments

    Item06. Array Formal Arguments

    谨慎使用

    ------------------------------------------
    退化(decay):数组自动地转化为指向其首元素的指针

    ---------------------------------------------

    1、当用数组作为函数的形参时,数组的边界信息就丢失了,所以无需指定数组的大小。
    void average( int ary[] ); //int* ary

    2、若要显式地指定形参数组的大小,要使用引用
    void average( int (&ary)[12] ); //此时只能传入大小为12的int数组

    更通用地,可以使用模板:
    template <int n>
    void average( int (&ary)[n] );

    3、传统方法
    void average_n( int ary[], int size );

    4、使用STL容器,如vector
    void average(std::vector<int> ary);

    5、多维数组形参与一维数组形参类似,只不过是数组退化为指向数组的数组.
    void process( int ary[][20] ); //int (*ary)[20]

    template <int n, int m>
    inline void process( int (&ary)[n][m] )
        { process_2d( &ary[0][0], n, m ); }

  • 相关阅读:
    BZOJ3589: 动态树
    BZOJ3631: [JLOI2014]松鼠的新家
    BZOJ3307: 雨天的尾巴
    BZOJ1895: Pku3580 supermemo
    BZOJ3786: 星系探索
    BZOJ2819: Nim
    解题:POI 2009 Lyz
    解题:POI 2016 Nim z utrudnieniem
    解题:POI 2004 Bridge
    解题:POI 2018 Prawnicy
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333264.html
Copyright © 2011-2022 走看看