zoukankan      html  css  js  c++  java
  • 《C++ Primer》学习 之 返回数组的引用(返回数组的指针,方法与之相同)

    /*
      返回数组的引用(返回数组的指针,方法与之相同)
      共四种方法(在下面示例程序中,调用其中一种方法时,需要将其他三种方法注释掉)
    */

     1 #define _CRT_SECURE_NO_WARNINGS
     2 #define HOME
     3 #include <iostream>
     4 #include <stdexcept>
     5 #include <ctype.h>
     6 #include <locale>
     7 #include <iterator>
     8 #include <cmath>
     9 #include <string>
    10 #include <vector>
    11 #include <initializer_list>
    12 #include <ctime>
    13 using namespace std;
    14 
    15 string strArr[10];
    16 
    17 // 调用其中一种方法时,需要将其他三种方法注释掉
    18 // 法一:基本写法
    19 string (&returnArrRef())[10]
    20 {
    21     return strArr;
    22 }
    23 
    24 // 法二:类型别名
    25 using strArrT = string[10];
    26 strArrT& returnArrRef()
    27 {
    28     return strArr;
    29 }
    30 
    31 // 法三:尾置返回类型
    32 auto returnArrRef() -> string(&)[10]
    33 {
    34     return strArr;
    35 }
    36 
    37 // 法四:使用decltype关键字
    38 decltype(strArr) &returnArrRef()
    39 {
    40     return strArr;
    41 }
    42 
    43 int main(int argc, char **argv)
    44 {
    45 #ifdef HOME
    46     //freopen("in", "r", stdin);
    47     //freopen("out", "w", stdout);
    48 #endif
    49 
    50     for (int i = 0; i < 10; ++i)
    51     {
    52         strArr[i] = '0' + i;
    53     }
    54     string (&strArrTmp)[10] = returnArrRef();
    55     for (int i = 0; i < 10; ++i)
    56     {
    57         strArrTmp[i] = '1' + i;
    58     }
    59 
    60     for (int i = 0; i < 10; ++i)
    61     {
    62         cout << strArr[i] << endl;
    63     }
    64 
    65 #ifdef HOME
    66     std::cerr << "Time elapsed: " << clock() / CLOCKS_PER_SEC << " ms" << endl;
    67 #endif
    68     return 0;
    69 }
  • 相关阅读:
    Javascript 加解密
    Netsuite 友好提示
    一中另类调试javascrīpt的好方法
    js 转化为标准日期型
    多站点整合—单点登录简单方案{装载}
    win+e 失效
    (转载)向页面某处动态添加js的方法
    prototype.js源码解读(一)
    Saved search in customer center on tab
    spring boot 加载web容器tomcat流程源码分析
  • 原文地址:https://www.cnblogs.com/shijianming/p/5300438.html
Copyright © 2011-2022 走看看