• C++进阶(while循环——函数应用)


    知识点+代码框架总结

    输入n组数据 ,对n组数据里面的每一组进行处理(输出、求和 、运算、其他)

    
     int n;//几组数据
         cin >> n;//2
      
        
        while(n--){
          //对每组数据进行处理
         
        }
        看到下面的样例,肌肉型反映出上面的框架
        //2
        // 1 2 3
        // 4 5 6
    

    若干组输入框架

    int a; //方法一
    while ( cin >> a ) {//不断地读入
      cout << a << " ";
    }
    
    int a; //方法二
    while (scanf("%d", &a) == 1) {//当scanf接收到一个数据时(返回值为1)
      cout << a << " ";
    }
    
    int a; //方法三
    while (scanf("%d", &a) != EOF) {//结束的时候返回EOF 
      cout << a << " ";
    }
    

    对数字拆分的框架

    
     int t = i;
     //拆分后肯定为0,不影响上面的for循环的进行,故使用t作为临时变量
            while (t)//对t进行拆分
            {                         // 345 345% 10=5 34%10 = 4
                cout << t % 10;//输出每一位 5 4 3 
    
                t = t / 10; // 345/10=34 34/10=3
            }
    

    对于一维数组的框架

    
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int arr[100];
        
        //第一步:对arr数组里面的元素进行赋值
        
        for(int i = 1;i <= n;i++){
          cin >> arr[i];//arr[1]  arr[2]...arr[n]
        }
        
        //第二步:对数组遍历+题目要求 do
        for(int i = 1;i <= n;i++){
          
          //题目要求进行填写主要内容
        }
        
        //第三步:根据要求是否要打印数组里面的这些值
        for(int i = 1;i <= n;i++){
          cout <<  arr[i] <<  " ";
        }
         
        return 0;
    }
    
    

    删除数组中第K个元素(位置为k)

    
    for(int i = k + 1;i <= n;i++){
    
    a[i-1] = a[i];
    
    }
    

    区间翻转的代码框架

    
    for(int i = l,j=r;i < j;i++,j--){
    
    //交换a[i] a[j]的位置
    
    swap(a[i),a[j]);
    }
    
    
    

    二维数组的框架

    
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int a[505][505] = { }; //假如数据范围是500
        int n, m;        // n行 m列
    
        //输入二维数组
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                cin >> a[i][j];
            }
        }
        
        
        
        //根据题意去干什么事情 —— to do
         for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                //根据题意 to do  
                
            }
        }
        
        // 输出二维数组(根据题意)
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                cout << a[i][j] << " ";
            }
            cout << endl;
        }
        
        
    
        return 0;
    }
    
    

    字符数组以及字符串函数

    在这里插入图片描述

    经典例题

    计算A+B(4) —— 掌握若干组数据输入的框架

    输入包含多个测试用例,一个用例一行。每种情况都以一个整数n开头,然后n个整数跟在同一行中。(数据均在int范围内)
    
    样例输入:
    
    4 1 2 3 4
    5 1 2 3 4 5
    
    样例输出:
    
    10
    15
    
    **代码**#include 
    #include 
    
    using namespace std;
    
    int main()
    {
        int n;
        while (cin >> n )
        {
            int res = 0;
            for (int i = 0; i < n; i++)
            {
                int num;
                cin >> num;
                res = res + num;
            }
            cout << res << endl;
        }
    
        return 0;
    }
    
    

    土仙花数——掌握数字拆分

    定义土仙花数为各个数位乘积与该数本身的差的绝对值不超过 k 的数。
    **样例输入1**
    
    10 1
    
    **样例输出1**
    
    9
    
    代码:
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int n, k, count = 0; // count记录个数
        cin >> n >> k;       // 10 1
        for (int i = 1; i <= n; i++)
        {
            int t = i, sum = 1;
            while (t)
            {
                sum *= t % 10;
                t /= 10;
            }
            if (abs(sum - i) <= k)
                count++;
        }
        cout << count << endl;
        return 0;
    }
    
    

    打印分数——掌握一维数组的框架

    
    输入n个成绩,打印出所有低于平均分的分数
    #### Input 1
    
    3 40 50 60
    2 90 80
    5 10 10 90 80 80
    
    #### Output 1
    
    40
    80
    10 10
    
    代码:
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int arr[110], n;
        while (cin >> n)
        {
            int sum = 0;
            for (int i = 1; i <= n; i++)
            {
                cin >> arr[i];
                sum = sum + arr[i];
            }
            for (int i = 1; i <= n; i++)
            {
                double p = sum * 1.0 / n;
                if (arr[i] < p)
                    cout << arr[i] << " ";
            }
            cout << endl;
        }
    
        return 0;
    }
    
    

    删除某个数——掌握删除框架

    对于给定长度为n的数列,删除指定位置上的数。
    代码:
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int n, m;
        cin >> n >> m; // 5 3
    
        int arr[1005];
        for (int i = 1; i <= n; i++)
        {
            cin >> arr[i]; // 1 2 3 4 5
        }
        // 1 2 3 4 5
        //
    
        for (int i = m + 1; i <= n; i++)
        {
    
            arr[i - 1] = arr[i]; // a[4]
        }
    
        for (int i = 1; i < n; i++)
        {
            cout << arr[i] << " ";
        }
    
        return 0;
    }
    
    

    区间翻转——掌握区间翻转

    有一个长为n的数列,共有m次操作。每次操作会翻转一个区间l到r。问最终序列?
    #### **输入格式:**
    
    第一行一个整数n,表示序列中的元素个数。
    
    第二行n个整数,表示原序列。
    
    第三行一个整数m,表示翻转次数。
    
    接下来m行每行两个整数l,r。
    
    #### **输出格式:**
    
    一行n个整数,表示最终序列。
    
    #### **样例输入:**
    
    3
    1 2 3 
    1
    1 2
    
    #### **样例输出:**
    
    2 1 3
    代码:
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int n;
        cin >> n; // 3
    
        int arr[1005];
        for (int i = 1; i <= n; i++)
        {
            cin >> arr[i]; // 1 2 3
        }
        int m;
        cin >> m; //翻转的次数 1 3
        for (int i = 1; i <= m; i++)
        {
            int l, r;
            cin >> l >> r;
            //翻转
            for(倒着不遍历l到r的区间){
              //把该区间的元素存入到临时数组t中,
              //每存入一个元素,数组t的有效长度增加1
            }
            for(正着遍历l到r的区间){
              //用数组t中的有效元素进行替换该区间数组a的元素
            }
                
        }
        for (int i = 1; i <= n; i++)
        {
            cout << arr[i] << " ";
        }
    
        return 0;
    }
    
    

    拔苗助长——掌握模拟的过程

    **输入格式:**
    
    第一行输入一个整数n,表示秧苗的数量。
    
    第二行输入n个数,表示每株秧苗的初始高度。
    
    第三行输入一个整数m,表示农夫拔苗的天数。
    
    接下来m行每行三个整数a,b,c,表示将第 a 株苗到第 b 株苗全部拔高 c 的高度
    
    #### **输出格式:**
    
    输出一行,包含�n个整数,以空格隔开,表示秧苗最终的高度
    
    #### **样例输入:**
    
    4
    1 2 3 4
    3
    1 2 1
    2 3 1
    4 4 1
    
    #### **样例输出:**
    
    2 4 4 5
    
    代码:
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int n;
        cin >> n; //操作的次数 4
        int arr[1001];
        for (int i = 1; i <= n; i++)
        {
            cin >> arr[i]; //苗的初试状态  1 2 3 4
        }
        int m;
        cin >> m; //操作的次数
        for (int i = 1; i <= m; i++)
        {
            int l, r, h;
            cin >> l >> r >> h;
    
            for (int j = l; j <= r; j++)
            {
                arr[j] = arr[j] + h;
            }
        }
    
        for (int i = 1; i <= n; i++)
        {
            cout << arr[i] << " ";
        }
    
        return 0;
    }
    
    
    

    计算矩阵边缘元素之和——掌握二维数组的框架+总结规律

    
    #### Input 1
    
    3 3
    3 4 1
    3 7 1
    2 0 1
    
    #### Output 1
    
    15
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int n, m;
        cin >> n >> m;
        int a[105][105];
        int sum = 0;
    
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cin >> a[i][j];
            }
        }
       
    
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                if (i == 0 || i == n - 1 || j == 0 || j == m - 1)
                {
                    sum = sum + a[i][j];
                }
            }
        }
    
        cout << sum << endl;
    
        return 0;
    }
    
    

    蹦蹦炸弹——把8个方向的坐标写成两个一维数组进行遍历

    
    #### Input 1
    
    5 5
    6 8 9 8 7 
    9 9 6 6 5 
    7 9 7 6 7 
    5 7 7 8 7 
    8 7 9 6 8
    
    #### Output 1
    
    26 39 37 33 19
    39 61 62 55 34
    39 57 58 53 32
    38 59 59 57 35
    19 36 35 39 21
    
    ### 数据范围
    
    1<=1001<=n,m<=100
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
        int n, m, a[105][105] = {};
        int dx[8] = {-1, 1, 0, 0, -1, -1, 1, 1};
        int dy[8] = {0, 0, -1, 1, -1, 1, -1, 1};
        int sum[105][105] = {};
        cin >> n >> m;
    
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                cin >> a[i][j];
            }
        }
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
    
                // to do
    
                for (int k = 0; k < 8; k++)
                {
                    int xx = dx[k] + i;
                    int yy = dy[k] + j;
                    sum[i][j] += a[xx][yy];
                }
            }
        }
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                cout << sum[i][j] << " ";
            }
            cout << endl;
        }
    
        return 0;
    }
    
    

    友好数对——二维数组全部赋值为-1,避免重复

    
    ### 题目描述
    
    读入一个n*m的矩阵,定义两个数是友好的,当且仅当他们位置相邻(上下左右)且值相同。求友好数对个数。
    
    ### 输入格式
    
    第一行两个整数n,m  
    之后n行,每行m个0100间的整数
    
    ### 输出格式
    
    一个整数,表示答案。
    
    ### 样例
    
    #### Input 1
    
    5 4
    3 3 3 4
    2 0 0 3
    0 3 1 4
    3 4 3 3
    1 0 3 3
    
    #### Output 1
    
    7
    
    ### 样例解释
    
    测试样例解释:  
    对于样例输入1,共有7对友好数字,分别是:  
    (1,1)(1,2),  
    (1,2)(1,3),  
    (2,2)(2,3),  
    (4,3)(4,4),  
    (4,3)(5,3),  
    (4,4)(5,4),  
    (5,3)(5,4)。
    
    ### 数据范围
    
    1<=n,m<=500
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int n, m;
        cin >> n >> m;
        int cnt = 0; //记录个数
        int a[505][505]={};
        for (int i = 1; i <= 504; i++)
        {
            for (int j = 1; j <= 504; j++)
            {
                a[i][j] = -1;
            }
        }
    
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                cin >> a[i][j];
            }
        }
    
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
    
                if (a[i][j] == a[i][j + 1])
                {
                    cnt++;
                }
                if (a[i][j] == a[i + 1][j])
                {
                    cnt++;
                }
            }
        }
        cout << cnt << endl;
    
        return 0;
    }
    
    

    字母转换——基础必须掌握

    
    样例输入:
    
    q
    
    样例输出:
    
    Q
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        char ch;
        cin >> ch;
        cout << char(ch - 32);
    
        return 0;
    }
    
    

    字符串的大小关系——掌握strcmp()函数

    
    ### **输入格式**
    
    输入共两行,每行一个无空格的字符串,分别表示两个需要比较大小的字符串s1和字符串s2。
    
    ### **输出格式**
    
    共两行,第一行输出字典序小的字符串,第二行输出字典序大的字符串。
    
    ### **样例输入**
    
    abd
    abc
    
    ### **样例输出**
    
    `abc` abd
    
    ### **数据范围与提示**
    
    保证输入字符串长度不超过100
    
    ## 代码:
    
    ```C++
    
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        //定义字符数组a b
        char a[105], b[105];
    
        //输入这两个字符串
        cin >> a >> b;
    
        int t;
        t = strcmp(a, b); //赋值给字符串比较函数
    
        if (t < 0)
        {
    
            cout << a << endl << b;
            //输出小的 在输出大的
        }
        else
        {
            //输出小的 在输出大的
            cout << b << endl << a;
        }
    
        return 0;
    }
    
    

    验证子串——掌握strlen()函数以及strstr()函数

    
    【题目描述】
    
    输入两个字符串,验证其中一个串是否为另一个串的子串。
    
    【数据格式】
    
    输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。
    
    若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)
    
    否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)
    
    否则,输出 No substring。
    
    样例输入:
    
    abc
    dddncabca
    
    样例输出:
    
    abc is substring of dddncabca
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        char s1[205], s2[205];
        cin >> s1 >> s2;
    
        int len1 = strlen(s1); // 3
        int len2 = strlen(s2); // 9
    
        if (strstr(s2, s1) != NULL && (len1 < len2))
        {
    
            cout << s1 << " "
                 << "is substring of" <<" "<< s2;
        }
        else if (strstr(s1, s2) != NULL && (len1 > len2))
        {
            cout << s2 << " "
                 << "is substring of"
                 << " " << s1;
        }
        else
        {
            cout << "No substring" << endl;
        }
        return 0;
    }
    
    

    输出特殊字符串——掌握转义字符

    
    **样例输出1**
    
    He said:"The symbol is '\'".
    
    **约定:**
    
    **提示:**
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
        cout << "He said:";
        cout << "\"The symbol is '\\'\".";
    
        return 0;
    }
    
    

    统计数字字符个数——基础必须掌握

    
    ### 样例
    
    #### Input 1
    
    Peking University is set up at 1898.
    
    #### Output 1
    
    4
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        string a;
        getline(cin, a);
        int len = 0;
        len = a.size();
        int cnt = 0;
    
        for (int i = 0; i < len; i++)
        {
            if (a[i] >= '0' && a[i] <= '9')
            {
                cnt++;
            }
        }
    
        cout << cnt << endl;
        return 0;
    }
    
    

    验证子串2——掌握字符型数字的比较:长度+字典序

    
    ### 输入格式
    
    输入一行,包含两个数字字符串,两个字符串之间用空格隔开。
    
    ### 输出格式
    
    输出两行:  
    第一行两个字符串用空格隔开,分别是“大”字符串和“小”字符串;  
    第二行输出"YES""NO",表示后者是否为前者的子串。
    
    ### 样例
    
    #### Input 1
    
    12345678912345 12345678912345
    
    #### Output 1
    
    12345678912345 12345678912345
    YES
    
    #### Input 2
    
    12345 123456789 
    
    #### Output 2
    
    123456789 12345 
    YES
    
    #### Input 3
    
    12345 223456789 
    
    #### Output 3
    
    223456789 12345 
    NO
    
    ### 数据范围
    
    1<=字符串长度<=10001<=字符串长度<=1000  
    单个数字字符串不包含空格。
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        string a, b;
        cin >> a >> b;
        if (a.size() > b.size() || a.size() == b.size() && a > b)
        {
            cout << a << " " << b << endl;
            int pos = a.find(b);
            if (pos > 0)
                cout << "YES";
            else
                cout << "NO" << endl;
        }
        else
        {
            cout << b << " " << a << " " << endl;
            int pos = b.find(a);
            if (pos != string::npos)
                cout << "YES" << endl;
            else
                cout << "NO" << endl;
        }
    
        return 0;
    }
    
    

    身份证信息——掌握substr()分割字符串函数

    
    ### 题目描述
    
    18位身份证号意义如下:  
    11-2位:各省级政府的代码;  
    23-4位:地、市级政府代码;  
    35-6位:县、区级政府代码;  
    47-10位:持证人出生年份;  
    511-121:持证人出生月份;  
    613-14位:持证人出生当月日期;  
    715-17位:持证人在当地的顺序码,性别等,其中奇数为男、偶数为女;  
    8、第18位:校验码。
    
    现在有n个人向你填报了自己的身份证号,你能找出其中年纪最大的是第几位吗?  
    按输入顺序编号。如果有出生年月日都相同的,就输出最靠前的一位的序号。
    
    ### 输入格式
    
    输入n+1行:  
    第一行一个整数n,  
    接下来n+1行,每行一个18位的身份证号。
    
    ### 输出格式
    
    输出年纪最大的人的编号。
    
    ### 样例
    
    #### Input 1
    
    3
    410181199707240021
    410181200511250012
    411181199707250352
    
    #### Output 1
    
    1
    代码:
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
        int n;
        cin >> n;
        string s[10005], s1, elderstr;
        elderstr = "99999999";
        int maxage = 0;
        for (int i = 0; i < n; i++)
        {
            cin >> s[i];
            s1 = s[i].substr(6, 8);
            if (elderstr > s1)
            {
                elderstr = s1;
                maxage = i + 1;
            }
        }
        cout << maxage << endl;
        return 0;
    }
    
    

    卡牌收集Plus——字符串与数字进行绑定

    
    **输入格式:** 
    
    第一行两个整数n,m。n表示卡牌的总数,m表示有m次询问;
    
    接下去n行,每行一个字符串和一个整数,表示卡牌的名称和攻击力;
    
    最后一行,有m个以空格间隔的字符串,依序表示询问的卡牌名称。
    
    **输出格式:**
    
    仅一行,以空格间隔的m个整数,按照询问顺序输出结果。
    
    **样例输入:**
    
    2 2
    Luffy 1200
    Zoro 1100
    Zoro Luffy
    
    **样例输出:**
    
    1100 1200
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        int n, m;
        cin >> n >> m; // n卡牌总数 m询问次数
        string s[2005];
        int a[2005];
    
        for (int i = 0; i < n; i++)
        {
            cin >> s[i] >> a[i];
        }
    
        string x;
        while (m--)
        {
            cin >> x; //字符串
            for (int i = 0; i < n; i++)
            {
                if (s[i] == x)
                {
                    cout << a[i] << " ";
                }
            }
        }
    
        return 0;
    }
    
    

    判断字符串是否为回文——必须掌握

    
    ### 题目描述
    
    输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。
    
    ### 输入格式
    
    输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。
    
    ### 输出格式
    
    如果字符串是回文,输出yes;否则,输出no。
    
    ### 样例
    
    #### Input 1
    
    abcdedcba
    
    #### Output 1
    
    yes
    
    ## 代码:
    
    ```C++
    方法一:
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        string s;
        cin >> s;
    
        for (int x = 0, y = s.size() - 1; x <= y; x++, y--)
        {
            if (s[x] != s[y])
            {
    
                cout << "no" << endl;
                return 0;
            }
        }
        cout << "yes";
    
        return 0;
    }
    
    

    方法二:

    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        string s, ss;
        cin >> s;
        ss = s;
        reverse(s.begin(), s.end());
    
        if (s == ss)
        {
            cout << "yes" << endl;
        }
        else
        {
            cout << "no" << endl;
        }
    
        return 0;
    }
    
    

    凯撒加密简单版——掌握

    
    在古罗马,“高卢战争”描述了凯撒使用加密来传递信息,即所谓的“凯撒加密”,这是一种替代加密。消息中的每个字母都被其后面的第t个字母替换。例如,当t=4时,加密规则是用原始字母后的第4个字母替换原始字母, 字母“a”后的第四个字母是“e”,而“a”被“e”取代,字母“z”后的第四个字母是“d”,而“z”被“d”取代。因此,“china”将被翻译成“glmre”。请编写一个程序来加密输入的字符串,方法是将每个字母替换为后面的第t个字母。
    
    输入格式:输入一个字符串并输入t
    
    输出格式:标题中描述了输出格式。
    
    示例输入1:
    
    china 4
    
    样本输出1:
    
    glmre
    
    示例输入2:
    
    antdzyo 30
    
    样本输出2:
    
    erxhdcs
    
    规定:
    
    输入的字符串长度不超过100,只包含小写字母。t<=260
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    int main()
    {
    
        string s;
        int t;
        cin >> s >> t;
        t = t % 26;
        int num = s.size();
        for (int i = 0; i < num; i++)
        {
            if (s[i] + t > 'z')
            {
                s[i] = (s[i] + t) % 'z' + 'a' - 1;
            }
            else
            {
                s[i] += t;
            }
        }
        cout << s;
    
        return 0;
    }
    
    

    最大公约数和最小公倍数——基础必须掌握两个函数

    
    #include 
    #include 
    
    using namespace std;
    
    int fun1(int a, int b)
    {
        //最大公约数
        return __gcd(a, b);
    }
    int fun2(int a, int b)
    {
        //最小公倍数
        return a * b / __gcd(a, b);
    }
    
    int main()
    {
    
        int a, b;
        cin >> a >> b;
    
        int c, d;
        c = fun1(a, b);
        d = fun2(a, b);
        cout << c << endl << d;
    
        return 0;
    }
    
    

    绝对素数——基础必须掌握思路(考察函数的使用)

    
    ### 题目描述
    
    如果一个自然数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如13。试求出所有二位绝对素数。
    
    ### 输入格式
    
    无
    
    ### 输出格式
    
    所有二位绝对素数(由小到大,一个数一行)。
    
    ### 样例
    
    #### Input 1
    
    无
    
    #### Output 1
    
    无
    
    ## 代码:
    
    ```C++
    #include 
    #include 
    
    using namespace std;
    
    bool prime(int x)
    {
    
        for (int i = 2; i < sqrt(x); i++)
        {
            if (x % i == 0)
                return false;
        }
        return true;
    }
    
    int main()
    {
    
        for (int i = 10; i < 100; i++)
        {
            if (prime(i) && prime(i % 10 * 10 + i / 10))
                cout << i << endl;
        }
        return 0;
    }
    
    
    
    
  • 相关阅读:
    gRPC之内置Trace
    【Java集合框架】20 ——HashTable 类
    数字孪生与GIS的完美融合
    线程安全问题
    java毕业生设计车辆调度管理系统计算机源码+系统+mysql+调试部署+lw
    Linux消息队列
    C#:实现有向加权图上的Floyd Warshall算法(附完整源码)
    canal安装与客户端使用
    vite项目require语法兼容问题解决require is not defined
    Win11系统启动文件夹是空的怎么解决?
  • 原文地址:https://blog.csdn.net/weixin_46038869/article/details/140408123