zoukankan      html  css  js  c++  java
  • C++ VS Java之模板

    在开发中可能需要一个方法两种类型的数据去访问和使用,C++中诞生了泛型的概念,

     1 #include <iostream>
     2 using namespace std;
     3 template <class T, int size>
     4 T min(const T(&array)[size]) {
     5     //寻找数组中最小的元素
     6     T min_val = array[0];
     7     for (int ix = 1; ix < size; ++ix) {
     8         if (array[ix] < min_val)
     9             min_val = array[ix];
    10     }
    11     return min_val;
    12 }
    13 int main() {
    14     int ia[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    15     double da[5] = { 6.7, 5.7, 5.6, 9.6, 2.8};
    16     int mi = min(ia);    //Type => int, size => 9
    17     double md = min(da);//Type => double, size => 5
    18 
    19     cout << "mi:    " << mi << endl;
    20     cout << "md:    " << md << endl;
    21 }

    输出结果:

     

    Java中也有类似的概念:

    public class Test {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Integer ia[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            Double da[] = { 6.7, 5.7, 5.6, 9.6, 2.8};
            int mi = min(ia,ia.length);   //Type => int, size => 9
            double md = min(da,da.length);//Type => double, size => 5
            System.out.println("数组ia的最小元素为: " + mi +  "  数组da的最小元素为: " +  md);
            
        }
        public static <T>   T min (T [] array, int size) {
            T min_val = array[0];
            for (int ix = 1; ix < size; ++ix) {
                if (((Comparable)array[ix]).compareTo(min_val) == -1 )
                    min_val = array[ix];
            }
            return min_val; 
        }

    执行结果如下:

    //数组ia的最小元素为: 1  数组da的最小元素为: 2.8
    -----------------------------------------------------

    Github:

    https://github.com/RainFool
  • 相关阅读:
    奇数
    简单的登录基于代码的
    偶数
    寻找特定的值
    'k1': 大于66的所有值, 'k2': 小于66的所有值
    差数和
    day1
    页面滑动监听
    jq的ajax初级使用
    在vue中引入swiper
  • 原文地址:https://www.cnblogs.com/RainFool/p/3760087.html
Copyright © 2011-2022 走看看