码迷,mamicode.com
首页 > 编程语言 > 详细

C++ VS Java之模板

时间:2014-06-01 12:34:28      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

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

bubuko.com,布布扣
 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 }
bubuko.com,布布扣

输出结果:

 bubuko.com,布布扣

Java中也有类似的概念:

 

bubuko.com,布布扣
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; 
    }
bubuko.com,布布扣

执行结果如下:

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

 

C++ VS Java之模板,布布扣,bubuko.com

C++ VS Java之模板

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/RainFool/p/3760087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!