zoukankan      html  css  js  c++  java
  • 泛型函数

    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    template <class T> T median(vector<T> v)
    {
        typedef typename vector<T>::size_type vec_sz;//注:关键字typename,说明vector<T>::size_type是一个类型。
    
         vec_sz size=v.size();
         if(size==0)
         {
             throw domain_error("空的集合!");
         }
         sort(v.begin(),v.end());
         vec_sz mid=size/2;
    
         return mid%2==0?(v[mid]+v[mid-1])/2:v[mid];
         
    }
    
    template <class T> T max_New(const T& left,const T& right)
    {
        return left>right?left:right;
    }
     
    
    int main()
    {
        int a[8]={1,2,3,90,5,6,7,9};
        vector<int> vi(a,a+8);
        cout<<median(vi);
    
        double b[4]={2.4,5,5.6,0.9};
        vector<double> vd(b,b+4);
        cout<<endl<<median(vd);
     
        double num=max_New(3.36,6.26);//两个参数的类型必须相同。
        cout<<endl<<num;
    
    
        /*string strs[]={"a","b","c"};
        vector<string> vs(strs,strs+sizeof(strs)/sizeof(string));
        cout<<endl<<median(vs);*/ //此处编译时报错,因为string不支持除法。
    }
  • 相关阅读:
    冲刺第十三天
    冲刺第十二天
    冲刺第十一天
    Android Studio三种运行方法
    第十三周学习进度
    冲刺第一阶段意见评论
    第十二周学习进度
    冲刺第十天
    大二暑假周总结(五)
    大二暑假周总结(四)
  • 原文地址:https://www.cnblogs.com/hometown/p/3375833.html
Copyright © 2011-2022 走看看