• 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
  • 相关阅读:
    C语言左移和右移
    mmap详谈
    eclipse插件自动生成类图
    async 和 defer 的区别
    SVN里恢复到某一天的版本操作
    解决跨域的jsonp+Java实例
    HTTP请求行、请求头、请求体等
    ajax在什么情况下会走success和error
    记阅读POST与GET的区别
    记一些快捷键
  • 原文地址:https://www.cnblogs.com/RainFool/p/3760087.html
Copyright © 2020-2023  润新知